Compare commits

...

364 Commits
0.2.1 ... 0.3.3

Author SHA1 Message Date
Bartek Kryza
ef3f4c9759 Fixed compilation on ubuntu kinetic 2023-03-26 18:12:48 +02:00
Bartek Kryza
0552810ddb Updated CHANGELOG for 0.3.3 2023-03-26 17:27:05 +02:00
Bartek Kryza
6513d27e4b Added option to inject custom compile flags to compilation database (fixes #112) 2023-03-26 17:26:28 +02:00
Bartek Kryza
5b60a30855 Added LLVM compatible versions badge 2023-03-26 16:12:56 +02:00
Bartek Kryza
d842bf158f Merge pull request #115 from bkryza/add-json-model-output-generator
Add json model output generator -  resolves #114
2023-03-26 01:11:40 +01:00
Bartek Kryza
017fc7025b Fixed json generator selector 2023-03-26 00:43:35 +01:00
Bartek Kryza
f2062c5909 Updated test cases documentation 2023-03-26 00:24:04 +01:00
Bartek Kryza
fc3110fd4e Fixed clang-tidy warnings 2023-03-26 00:19:49 +01:00
Bartek Kryza
90307793d8 Remove access for relationships in include and package diagrams 2023-03-25 22:28:32 +01:00
Bartek Kryza
9e3c387fbd Optimized sequence diagram JSON models 2023-03-25 21:19:27 +01:00
Bartek Kryza
a797a992b4 Refactored test case diagram visitor and generator selection based on traits 2023-03-25 21:14:07 +01:00
Bartek Kryza
9e7c290685 Updated docs 2023-03-25 20:41:00 +01:00
Bartek Kryza
3b75da062e Refactored diagram visitor and generator selection based on traits 2023-03-25 20:21:13 +01:00
Bartek Kryza
3a772a9102 Updated test cases documentation 2023-03-25 18:18:31 +01:00
Bartek Kryza
344549ac03 Added include diagram JSON model generator 2023-03-25 18:18:19 +01:00
Bartek Kryza
aa2d3099de Added JSON package diagram generator test cases 2023-03-25 13:40:10 +01:00
Bartek Kryza
c1bce60656 Added JSON package diagram generator 2023-03-25 12:20:52 +01:00
Bartek Kryza
43b81f97ce Added JSON test cases for all sequence diagram test cases 2023-03-25 01:25:59 +01:00
Bartek Kryza
49a40723a7 Added sequence diagram JSON test matchers 2023-03-23 00:25:51 +01:00
Bartek Kryza
491fb2b443 Added test cases for JSON class generators 2023-03-22 01:00:26 +01:00
Bartek Kryza
c59fbfa565 Added JSON test case stubs for all class diagram test cases 2023-03-21 00:37:57 +01:00
Bartek Kryza
b412f46fb2 Added initial json generator test cases 2023-03-20 01:33:50 +01:00
Bartek Kryza
44cd7b0484 Refactored JSON sequence diagram generator 2023-03-19 19:08:31 +01:00
Bartek Kryza
f0497e934d First working version of JSON sequence diagram generator 2023-03-19 18:30:00 +01:00
Bartek Kryza
e620c86f31 Updated test cases documentation 2023-03-17 00:42:47 +01:00
Bartek Kryza
4e404a362e Changed JSON generator paths to relative 2023-03-17 00:39:52 +01:00
Bartek Kryza
f13ce56840 Fixed class template parameter generation in sequence visitor 2023-03-16 23:45:05 +01:00
Bartek Kryza
e0447f28c1 Fixed class template parameter generation in class visitor 2023-03-16 21:45:08 +01:00
Bartek Kryza
6d4533018b Refactoring template_parameter model 2023-03-16 01:53:10 +01:00
Bartek Kryza
3a01d8689c Updated troubleshooting 2023-03-15 18:12:24 +01:00
Bartek Kryza
2848090ad8 Fix clang-tidy warnings 2023-03-15 01:47:49 +01:00
Bartek Kryza
34131324ec Added json class generator test cases 2023-03-15 00:51:07 +01:00
Bartek Kryza
08d6f87d23 Added complete json generation for class diagrams 2023-03-14 00:54:10 +01:00
Bartek Kryza
19ae58f493 Refactored cppidx generator name to json 2023-03-13 22:14:26 +01:00
Bartek Kryza
bffe9913aa Added cli options for cppidx generator 2023-03-13 00:30:19 +01:00
Bartek Kryza
4ffb36fa9e Merge pull request #107 from bkryza/add-diagram-templates
Add diagram templates
2023-03-12 01:00:13 +01:00
Bartek Kryza
d5b279e096 Fixed typo 2023-03-12 00:38:05 +01:00
Bartek Kryza
eeb3d41a10 Updated README 2023-03-12 00:15:42 +01:00
Bartek Kryza
07b71aa389 Updated CHANGELOG 2023-03-12 00:14:59 +01:00
Bartek Kryza
9ba8fc9c05 Added diagram template docs 2023-03-12 00:13:37 +01:00
Bartek Kryza
bcba612f65 Fixed clang-tidy warnings 2023-03-11 22:07:11 +01:00
Bartek Kryza
e7353d7a03 Added cli_handler tests 2023-03-11 20:50:17 +01:00
Bartek Kryza
f1c125bf32 Refactored command line handling 2023-03-11 19:00:14 +01:00
Bartek Kryza
41537c5401 Implement CLI options for adding diagrams to config from templates 2023-03-08 01:25:38 +01:00
Bartek Kryza
2092a0e3e6 Added diagram templates to config 2023-03-07 23:03:02 +01:00
Bartek Kryza
0dc7445909 Updated test cases documentation 2023-03-06 23:32:40 +01:00
Bartek Kryza
029a28a0d3 Added NUMPROC option to clang-tidy 2023-03-06 22:50:33 +01:00
Bartek Kryza
8f99e2fc2f Added parents (base classes) diagram filter 2023-03-06 22:33:11 +01:00
Bartek Kryza
8ba0239283 Added option to read config file from stdin (related #105) 2023-03-05 19:34:06 +01:00
Bartek Kryza
f16c0e4a17 Updated test cases documentation 2023-03-05 11:41:16 +01:00
Bartek Kryza
b2fd763a89 Updated changelog 2023-03-05 11:39:39 +01:00
Bartek Kryza
69da23c4b2 Merge pull request #106 from bkryza/fix-processing-clang-uml-examples
Fix processing clang uml examples
2023-03-05 00:29:26 +01:00
Bartek Kryza
cfca79182c Added relationship exclusion to context filter 2023-03-04 21:11:14 +01:00
Bartek Kryza
a58b633d01 Fixed handling of template class specializations nested in other classes 2023-03-04 15:02:35 +01:00
Bartek Kryza
d4d749ae34 Fixed nested anonymous namespace regression 2023-03-04 11:51:52 +01:00
Bartek Kryza
bad78c0c7a Merge pull request #103 from bkryza/v0.3.2
V0.3.2
2023-03-02 23:44:15 +01:00
Bartek Kryza
812eada63a Fixed RPM spec for out of source builds 2023-03-02 22:28:08 +01:00
Bartek Kryza
8a4e6894fb Fixed git version extraction 2023-03-02 22:05:22 +01:00
Bartek Kryza
1a4e601828 Fixed git version extraction 2023-03-02 21:47:50 +01:00
Bartek Kryza
66cc92da82 Updated changelog for 0.3.2 2023-03-02 20:47:06 +01:00
Bartek Kryza
184386796a Merge pull request #102 from bkryza/add-support-cpp20-concepts
Add support cpp20 concepts
2023-03-02 01:12:56 +01:00
Bartek Kryza
464d80eca3 Fix clang-tidy warning after upgrading to clang-tidy-15 2023-03-02 00:33:28 +01:00
Bartek Kryza
884e021b9a Fix building with MSVC 2023-03-01 23:00:02 +01:00
Bartek Kryza
480d1bcae1 Updated test cases compile flags for C translation units 2023-03-01 20:36:19 +01:00
Bartek Kryza
cf0d87a0bf Updated clang-format to version 15 2023-03-01 20:22:00 +01:00
Bartek Kryza
fe99b72099 Updated GitHub actions Ubuntu to 22.04 2023-03-01 20:14:17 +01:00
Bartek Kryza
22b7b939ad Updated test cases documentation 2023-03-01 20:07:01 +01:00
Bartek Kryza
65a55fa7cc Fixed clang-tidy warnings 2023-03-01 19:58:25 +01:00
Bartek Kryza
afcc850087 Fixed formatting 2023-03-01 19:28:58 +01:00
Bartek Kryza
7708ed2535 Added non-virtual polymorphism abstract factory test case based on concepts 2023-03-01 19:28:42 +01:00
Bartek Kryza
be2ad5dc9b Added test case for C++20 concepts with variadic params 2023-03-01 18:37:31 +01:00
Bartek Kryza
7996cb7a00 Improved concept relationship handling including concepts with variadic params 2023-03-01 18:35:08 +01:00
Bartek Kryza
dbb3e68c3f Added rendering of concept requirements in concept body 2023-02-26 23:30:15 +01:00
Bartek Kryza
2ab6ed627e Refactored should_include in class diagram visitor 2023-02-26 20:35:22 +01:00
Bartek Kryza
84f7bed05c Updated test cases documentation 2023-02-26 13:54:10 +01:00
Bartek Kryza
3509853dba Implemented tests for concept test case 00056 2023-02-26 13:51:38 +01:00
Bartek Kryza
1fc0bf3f80 Added constrained template parameter names in requires relationship 2023-02-25 19:35:33 +01:00
Bartek Kryza
274a698713 Initial support for concept dependency relationships in class diagrams 2023-02-25 01:50:20 +01:00
Bartek Kryza
20a0f2d338 Added initial support for C++20 concepts 2023-02-21 19:43:29 +01:00
Bartek Kryza
040403382a Added basic framework for creating cxx20 test cases 2023-02-20 22:39:32 +01:00
Bartek Kryza
6be07a7dfa Merge pull request #99 from bkryza/fix-handling-of-plain-c-translation-units
Adds support for C99/C11 class diagrams from structs and unions relationships (#97).
2023-02-19 19:09:54 +01:00
Bartek Kryza
56a8ad9ca2 Updated test cases documentation 2023-02-19 18:56:11 +01:00
Bartek Kryza
6341a62857 Added support for 'class' diagrams from C99/C11 translation units (#97) 2023-02-19 18:54:04 +01:00
Bartek Kryza
4afb1daef0 Merge pull request #98 from bkryza/fix-building-internal-clang-uml-diagrams
Fix building internal clang uml diagrams
2023-02-19 01:39:42 +01:00
Bartek Kryza
35c4c210b1 Enabled backward-cpp for debug build on Linux 2023-02-19 00:37:15 +01:00
Bartek Kryza
bdf9a7e18f Fixed generation of class_model_class diagram 2023-02-18 23:04:32 +01:00
Bartek Kryza
c2b83e2396 Updated the clang-uml build path after cmake refactor 2023-02-18 22:20:28 +01:00
Bartek Kryza
28572e74c5 Merge pull request #92 from bkryza/refactor-cmake-files
Refactor cmake files
2023-02-08 00:02:16 +01:00
Bartek Kryza
4259733611 Fixed formatting 2023-02-07 23:26:09 +01:00
Bartek Kryza
78ec599466 Fixed building on macos with LLVM Clang 2023-02-07 23:18:19 +01:00
Bartek Kryza
43328e3e2d Fixed unit tests on MSVC 2023-02-07 22:18:57 +01:00
Bartek Kryza
865ae9d8ed Reverted custom compilation database class to default 2023-02-07 18:32:11 +01:00
Bartek Kryza
7112c160f5 Added PowerShell build script 2023-02-07 17:29:01 +01:00
Bartek Kryza
8b70bba0c0 Refactored cmake scripts and test cases compile database handling 2023-02-05 16:35:05 +01:00
Bartek Kryza
cdb056a52b Merge pull request #91 from bkryza/add-element-grouping-in-class-diagrams
Add element grouping in class diagrams
2023-02-04 23:00:57 +01:00
Bartek Kryza
315147ae3f Updated test cases documentation 2023-02-04 21:43:16 +01:00
Bartek Kryza
fbc4fadbb7 Added 'row' and 'column' layout hints 2023-02-04 21:32:00 +01:00
Bartek Kryza
edba233030 Added support for 'together' layout hint in package diagrams 2023-02-04 16:30:26 +01:00
Bartek Kryza
4423b14b62 Added support for 'together' option in class diagrams with rendered namespaces 2023-02-04 15:45:17 +01:00
Bartek Kryza
d7d80ab41e Added support for 'together' option in class diagrams without rendered namespaces 2023-02-04 00:24:09 +01:00
Bartek Kryza
b910e9b02f Merge pull request #89 from bkryza/add-logo 2023-01-29 21:04:21 +01:00
Bartek Kryza
76d14bc738 Updated logo 2023-01-29 19:33:04 +01:00
Bartek Kryza
0b6893fd3b Merge pull request #88 from bkryza/enable-notes-in-class-elements
Enable notes in class elements
2023-01-29 12:37:13 +01:00
Bartek Kryza
09f2db3ef9 Updated test cases documentation 2023-01-29 12:15:34 +01:00
Bartek Kryza
3abc6b784f Enabled adding notes to class methods and members (fixes #87) 2023-01-29 12:00:00 +01:00
Bartek Kryza
80b4b109c0 Added logo 2023-01-28 12:59:11 +01:00
Bartek Kryza
37767d7957 Updated github actions to disable builds on doc files 2023-01-28 12:58:51 +01:00
Bartek Kryza
e6ca06bbb2 Merge pull request #86 from bkryza/improve-handling-of-template-methods-in-class-diagrams
Improve handling of template methods in class diagrams
2023-01-25 23:57:13 +01:00
Bartek Kryza
1900f20995 Updated test cases documentation 2023-01-25 23:08:41 +01:00
Bartek Kryza
39851ca6d9 Extended t00052 test case 2023-01-25 23:07:08 +01:00
Bartek Kryza
21e7c3d3a0 Refactored cx utils to clang_utils 2023-01-25 22:43:49 +01:00
Bartek Kryza
9a7d66f93f Improved rendering of template methods in class diagrams 2023-01-25 22:13:57 +01:00
Bartek Kryza
0e6532f66c Updated installation instruction for Windows 2023-01-22 19:56:03 +01:00
Bartek Kryza
bc2fc2e4aa Merge pull request #85 from bkryza/v0.3.1
V0.3.1
2023-01-22 19:49:09 +01:00
Bartek Kryza
62bbcf22ee Updated packaging Makefile rules 2023-01-22 19:35:49 +01:00
Bartek Kryza
b6aa2c0dae Releasing version 0.3.1 2023-01-22 17:47:00 +01:00
Bartek Kryza
fada7c27b5 Merge pull request #84 from bkryza/fix-relative-to-paths
Fix relative to paths
2023-01-22 16:19:48 +01:00
Bartek Kryza
da30adc6c8 Updated test cases documentation 2023-01-22 16:04:57 +01:00
Bartek Kryza
2136ebefb3 Fixed clang-tidy warnings 2023-01-22 16:02:53 +01:00
Bartek Kryza
b802eaee3d Fixed relative lambda names in MSVC 2023-01-22 15:49:12 +01:00
Bartek Kryza
e0a42be63a Updated test cases documentation 2023-01-22 13:59:08 +01:00
Bartek Kryza
8deaf0246b Fixed handling of lambda names in auto types in class diagrams (#78,#82) 2023-01-22 13:56:54 +01:00
Bartek Kryza
3005ad7c37 Fixed formatting 2023-01-21 23:23:36 +01:00
Bartek Kryza
023a4a0cc0 Fixed generation of lambda names in class diagrams (#78) 2023-01-21 23:23:13 +01:00
bram
b5cf78ce82 Fix for segfault in path::pop_back 2023-01-21 20:44:32 +01:00
Bartek Kryza
61dcf9ef04 Updated docs 2023-01-21 20:30:14 +01:00
Bartek Kryza
78cfa630e5 Fixed handling of relative paths in configuration files (#69) 2023-01-21 18:07:46 +01:00
Bartek Kryza
b3701fa810 Updated glob dependency to commit b66732b0e72 2023-01-21 17:28:39 +01:00
Bartek Kryza
9a527eef0c Added toc to each docs page and Makefile update target 2023-01-19 22:01:51 +01:00
Bartek Kryza
c6bb063ef2 Updated test cases documentation 2023-01-18 21:38:37 +01:00
Bartek Kryza
a9f793e407 Removed dead code and improve test coverage 2023-01-18 21:37:06 +01:00
Bartek Kryza
00b9321034 Added --dump-config command line option (Fixes #77) 2023-01-18 00:31:05 +01:00
Bartek Kryza
74353603f8 Merge pull request #79 from bkryza/fix-tests-on-msvc
Fix tests on msvc
2023-01-17 00:38:54 +01:00
Bartek Kryza
f3ef592f01 Fixed clang-tidy warnings 2023-01-17 00:14:43 +01:00
Bartek Kryza
57740c0c6c Added clang-tidy Makefile target 2023-01-17 00:14:35 +01:00
Bartek Kryza
bdf55d45b7 Fixed formatting 2023-01-16 23:47:14 +01:00
Bartek Kryza
c49053dcf2 Fixed test cases under MS Visual Studio 2023-01-16 23:39:30 +01:00
Bartek Kryza
7a1cbbce9a Updated Windows build instructions 2023-01-16 23:38:51 +01:00
Bartek Kryza
7153666087 Fixed formatting 2023-01-13 18:24:26 +01:00
Bartek Kryza
ada11c6047 Fixed class and include diagrams tests in Windows 2023-01-12 23:31:12 +01:00
Bartek Kryza
3fbf3da27f Fixed path separators in diagram link URL's in Windows 2023-01-11 00:29:43 +01:00
Bartek Kryza
c7d201eef9 Merge pull request #72 from bkryza/add-windows-installer
Added Windows installer target using CPack and NSIS
2023-01-08 18:08:13 +01:00
Bartek Kryza
235707c916 Added Windows installer target using CPack and NSIS 2023-01-08 17:41:59 +01:00
Bartek Kryza
cf3e7ebc6e Merge pull request #71 from bkryza/add-msvc-support
Add support for building with Microsoft Visual Studio
2023-01-07 20:38:00 +01:00
Bartek Kryza
0fb0151feb Updated README 2023-01-07 19:24:22 +00:00
Bartek Kryza
e0012cca89 Fixed formatting 2023-01-07 19:16:35 +00:00
Bartek Kryza
d1ccee9c98 Fix handling of --compile-database option (Fixes #70) 2023-01-07 19:13:02 +00:00
Bartek Kryza
a35eec2023 Updated windows build instructions 2023-01-07 19:08:45 +00:00
Bartek Kryza
d64f974348 Updated README 2023-01-07 17:48:27 +00:00
Bartek Kryza
f1bae8289e Moved installation instructions to separate doc page 2023-01-07 15:34:50 +00:00
Bartek Kryza
0ace023985 Fixed building on macos 2023-01-07 14:42:12 +01:00
Bartek Kryza
a1a9d4ae99 Fixed formatting 2023-01-07 12:32:46 +01:00
Bartek Kryza
f1f6051cf7 Fixed path filters on Windows 2023-01-07 11:07:00 +00:00
Bartek Kryza
1cbc3e697d Added installation documentation page 2023-01-06 23:55:27 +00:00
Bartek Kryza
f5bcbeec0b Initial MSVC build working 2023-01-06 23:39:56 +00:00
Bartek Kryza
476a7873f9 Updated README 2023-01-02 23:51:38 +01:00
Bartek Kryza
dcafeb817b Merge pull request #65 from bkryza/v0.3.0
V0.3.0
2023-01-02 23:42:18 +01:00
Bartek Kryza
2b981c30a5 Updated conda packaging scripts 2023-01-02 22:46:47 +01:00
Bartek Kryza
cab22d3621 Added Fedora rpm makefile target 2023-01-02 21:02:37 +01:00
Bartek Kryza
d140c1f1a1 Fixed documentation typos 2023-01-02 21:00:40 +01:00
Bartek Kryza
93360282ad Fixed packaging scripts for Ubuntu Kinetic 2023-01-02 18:34:49 +01:00
Bartek Kryza
38724a8f8d Switched from quilt to native for Ubuntu packages 2023-01-02 14:21:36 +01:00
Bartek Kryza
e2d97f3610 Updated packaging scripts for Launchpad 2023-01-02 14:07:21 +01:00
Bartek Kryza
232fa1ac32 Updated packaging scripts for dbgsym packages 2023-01-02 13:50:41 +01:00
Bartek Kryza
afdb5b0a37 Added AUTHORS.md 2023-01-02 11:37:20 +01:00
Bartek Kryza
37b6e69d41 Updated copyright headers 2023-01-02 11:29:11 +01:00
Bartek Kryza
82f3a3a2e5 Added Fedora packaging spec 2023-01-01 23:57:39 +01:00
Bartek Kryza
e4a29c7117 Added initial documentation 2023-01-01 20:36:58 +01:00
Bartek Kryza
9d7275e388 Updated test case documentation 2022-12-30 19:10:14 +01:00
Bartek Kryza
a88ae790e8 Added Debian packaging config for Ubuntu Kinetic 2022-12-29 22:46:14 +01:00
Bartek Kryza
681dd5c91e Changed lambda naming in sequence diagrams to relative paths 2022-12-28 22:08:35 +01:00
Bartek Kryza
f1b7dfee0d Updated sample sequence diagram config template 2022-12-27 23:28:23 +01:00
Bartek Kryza
48e8770208 Added command line options to add diagrams to config 2022-12-27 22:01:41 +01:00
Bartek Kryza
139f61fdeb Added quiet command line option to disable logging 2022-12-27 20:02:23 +01:00
Bartek Kryza
29eedff762 Updated test case documentation 2022-12-26 21:58:34 +01:00
Bartek Kryza
95d3339fd2 Fixed formatting 2022-12-26 21:47:50 +01:00
Bartek Kryza
887652ed6b Added debug_mode config option 2022-12-26 21:47:27 +01:00
Bartek Kryza
1a344f9d8c Refactored sequence diagram visitor 2022-12-26 21:46:45 +01:00
Bartek Kryza
6a167f0835 Fixed segfault in sequence diagram template class generation 2022-12-26 21:44:49 +01:00
Bartek Kryza
63c3f6dc48 Fixed type aliases test case 2022-12-25 21:42:43 +01:00
Bartek Kryza
e45bcb6267 Updated version message 2022-12-25 21:41:50 +01:00
Bartek Kryza
a1223b1471 Fixed formatting 2022-12-25 21:32:15 +01:00
Bartek Kryza
07584c8616 Fixed building on macos with LLVM 15 2022-12-25 21:30:01 +01:00
Bartek Kryza
87f6616783 Refactored sequence diagram translation unit visitor 2022-12-25 16:08:39 +01:00
Bartek Kryza
edc35876b2 Updated test cases documentation 2022-12-24 19:05:52 +01:00
Bartek Kryza
8e8984fe66 Updated clang-tidy check filters 2022-12-24 19:01:42 +01:00
Bartek Kryza
0afd64668c Applied ppcoreguidelines-init-variables nullptr access warnings 2022-12-24 18:53:21 +01:00
Bartek Kryza
354bfcf67c Applied clang-tidy nullptr access warnings 2022-12-24 18:33:40 +01:00
Bartek Kryza
d82ac4a46b Applied readability-container-size-empty clang-tidy fixes 2022-12-24 15:34:22 +01:00
Bartek Kryza
ec9a510f76 Applied readability-redundant-declaration clang-tidy fixes 2022-12-24 15:30:31 +01:00
Bartek Kryza
dae4519ed7 Applied readability-redundant-control-flow clang-tidy fixes 2022-12-24 15:01:53 +01:00
Bartek Kryza
c13cc1d118 Applied llvm-else-after-return clang-tidy fixes 2022-12-24 14:58:06 +01:00
Bartek Kryza
b734018673 Applied llvm-else-after-return clang-tidy fixes 2022-12-24 13:34:21 +01:00
Bartek Kryza
f48269606d Update .clang-tidy check list 2022-12-23 23:05:01 +01:00
Bartek Kryza
5c4cf1e561 Applied hicpp-named-parameter clang-tidy fixes 2022-12-23 22:55:28 +01:00
Bartek Kryza
7fb4ab25ff Applied readability-const-return-type clang-tidy fixes 2022-12-23 22:46:52 +01:00
Bartek Kryza
c1d7f28f57 Applied cppcoreguidelines-pro-type-static-cast-downcast nullptr access warnings 2022-12-23 22:42:23 +01:00
Bartek Kryza
f07dc35e06 Applied clang-tidy nullptr access warnings 2022-12-23 21:26:36 +01:00
Bartek Kryza
aecbbd704b Applied misc-unused-parameters clang-tidy fixes 2022-12-23 17:02:36 +01:00
Bartek Kryza
4c7c9ff7dc Applied llvm-else-after-return clang-tidy fixes 2022-12-23 16:59:33 +01:00
Bartek Kryza
91487cf49f Applied performance-unnecessary-copy-initialization clang-tidy fixes 2022-12-23 16:51:02 +01:00
Bartek Kryza
fb2aeb6dea Applied readability-make-member-function-const clang-tidy fixes 2022-12-23 16:47:08 +01:00
Bartek Kryza
72bd69729e Applied hicpp-deprecated-headers clang-tidy fixes 2022-12-23 16:36:39 +01:00
Bartek Kryza
838b5a4b0d Fixed segfault with unresolvable aliases in Jinja templates 2022-12-23 15:45:59 +01:00
Bartek Kryza
d83a1f1805 Applied readability-qualified-auto clang-tidy fixes 2022-12-22 17:17:18 +01:00
Bartek Kryza
ebf87d2161 Applied hicpp-uppercase-literal-suffix clang-tidy fixes 2022-12-22 17:12:37 +01:00
Bartek Kryza
5271279175 Updated test cases documentation 2022-12-21 19:20:18 +01:00
Bartek Kryza
e1b6babc93 Applied hicpp-move-const-arg fixes 2022-12-21 19:11:39 +01:00
Bartek Kryza
4539ea9c64 Applied readability-implicit-bool-conversion fixes 2022-12-21 19:07:17 +01:00
Bartek Kryza
0d7167fff2 Applied clang-analyzer-core.* fixes 2022-12-21 19:02:17 +01:00
Bartek Kryza
71c772ac04 Applied performance-for-range-copy clang-tidy fixes 2022-12-21 18:16:16 +01:00
Bartek Kryza
14128374ef Applying bugprone-narrowing-conversions clang-tidy fixes 2022-12-21 18:05:45 +01:00
Bartek Kryza
5d8f31dbe6 Applying llvm-qualified-auto clang-tidy fixes 2022-12-21 17:47:00 +01:00
Bartek Kryza
6750365d54 Applying readability-simplify-boolean-expr clang-tidy fixes 2022-12-21 17:42:54 +01:00
Bartek Kryza
75db32fdeb Applied readability-qualified-auto clang-tidy fixes 2022-12-21 17:39:30 +01:00
Bartek Kryza
a907769c38 Applied misc-unused-parameters clang-tidy fixes 2022-12-21 17:35:05 +01:00
Bartek Kryza
217edd27bd Applied hicpp-noexcept-move clang-tidy fixes 2022-12-21 17:32:17 +01:00
Bartek Kryza
25f787785f Applied readability-avoid-const-params-in-decls clang-tidy fixes 2022-12-21 17:20:07 +01:00
Bartek Kryza
d6a5134ba7 Updated clang-tidy filters 2022-12-21 00:03:07 +01:00
Bartek Kryza
e32e4cd2aa Applied llvm-else-after-return clang-tidy fixes 2022-12-20 23:56:36 +01:00
Bartek Kryza
8e4c2af279 Applied google-readability-casting clang-tidy fixes 2022-12-20 23:52:45 +01:00
Bartek Kryza
134ad77f5c Applied readability-magic-numbers clang-tidy fixes 2022-12-20 23:49:43 +01:00
Bartek Kryza
0687c3093e Applied hicpp-use-override clang-tidy fixes 2022-12-20 23:29:30 +01:00
Bartek Kryza
a626bed328 Applied cppcoreguidelines-avoid-non-const-global-variables clang-tidy fixes 2022-12-20 23:28:10 +01:00
Bartek Kryza
09d60a9d07 Applied performance-faster-string-find clang-tidy fixes 2022-12-20 23:19:00 +01:00
Bartek Kryza
177c68158a Applied performance-unnecessary-value-param clang-tidy fixes 2022-12-20 23:16:46 +01:00
Bartek Kryza
6b883c4562 Applied hicpp-use-equals-default clang-tidy fixes 2022-12-20 23:06:21 +01:00
Bartek Kryza
682c6648be Applied cppcoreguidelines-pro-type-member-init,hicpp-explicit-conversionsm,modernize-use-default-member-init clang-tidy fixes 2022-12-20 23:01:55 +01:00
Bartek Kryza
1116c3ab67 Applied modernize-pass-by-value clang-tidy fixes 2022-12-20 22:40:38 +01:00
Bartek Kryza
0ce7b533f4 Applied modernize-concat-nested-namespaces clang-tidy fixes 2022-12-20 22:33:34 +01:00
Bartek Kryza
7061243113 Applied readability-use-anyofallof clang-tidy fixes 2022-12-20 22:23:03 +01:00
Bartek Kryza
a7c198f96d Updated test cases cxx flags 2022-12-20 22:11:20 +01:00
Bartek Kryza
f2760a5e21 Applied google-readability-namespace-comments clang-tidy fixes 2022-12-20 21:57:47 +01:00
Bartek Kryza
e8909c6fc1 Applied bugprone-use-after-move clang-tidy fixes 2022-12-20 21:51:48 +01:00
Bartek Kryza
204156d81b Applied clang-tidy fixes in util 2022-12-20 21:22:04 +01:00
Bartek Kryza
d6f2007a2b Fixed segfault in created class participants in sequence diagrams 2022-12-20 20:28:14 +01:00
Bartek Kryza
d1723f7b96 Added backward-cpp stack printer (90398eef20f4e7e0e939322d7e84f9c52078a325) 2022-12-20 19:18:31 +01:00
Bartek Kryza
834ead063e Minor code cleanup 2022-12-19 23:56:48 +01:00
Bartek Kryza
e87b4dccc0 Updated changelog 2022-12-19 20:15:10 +01:00
Bartek Kryza
b21b60668e Updated test cases documentation 2022-12-19 00:21:43 +01:00
Bartek Kryza
eac49e472c Improved folding empty control statements in sequence diagrams 2022-12-19 00:12:25 +01:00
Bartek Kryza
1c7e64c51e Added should_include helper methods in sequence diagram visitor 2022-12-18 22:18:41 +01:00
Bartek Kryza
c4d8bddf96 Added code formatting check 2022-12-18 17:42:24 +01:00
Bartek Kryza
5255fd1785 Fixed path filtering 2022-12-18 17:11:43 +01:00
Bartek Kryza
43c3e32597 Merge pull request #63 from bkryza/add-sequence-diagram-support-for-template-code-3
Add sequence diagram support for template code 3
2022-12-17 01:06:20 +01:00
Bartek Kryza
ae20cb4230 Updated test case documentation 2022-12-17 00:44:07 +01:00
Bartek Kryza
5d4dfbb4b1 Added sequence diagram option participants_order 2022-12-17 00:42:15 +01:00
Bartek Kryza
6454604595 Updated test case documentation 2022-12-16 23:32:42 +01:00
Bartek Kryza
3f314e0cf3 Improved translation unit glob matching in configuration files (#62) 2022-12-16 23:30:03 +01:00
Bartek Kryza
35554a2ec0 Fixed nested call expressions order in sequence diagrams 2022-12-16 21:20:17 +01:00
Bartek Kryza
4f95f426f1 Updated sequence diagram example in readme 2022-12-15 01:15:37 +01:00
Bartek Kryza
9a20aae030 Updated test case documentation 2022-12-15 01:15:23 +01:00
Bartek Kryza
8e4b670d99 Added combined feature sequence diagram test case 2022-12-15 01:11:31 +01:00
Bartek Kryza
1a82e46d7d Added support for ternary conditional operator in sequence diagrams 2022-12-14 23:58:38 +01:00
Bartek Kryza
0d15d09de2 Added test case for filtering methods based on access specifier in sequence diagrams 2022-12-14 22:00:27 +01:00
Bartek Kryza
fe9aa5d99a Updated test case documentation 2022-12-14 00:04:34 +01:00
Bartek Kryza
ed2b3e188b Added virtual method call test case 2022-12-13 23:47:32 +01:00
Bartek Kryza
d7c8c14cda Added initial support for skip decorator in sequence diagrams 2022-12-13 23:18:37 +01:00
Bartek Kryza
d425880462 Updated changelog and readme 2022-12-13 21:17:40 +01:00
Bartek Kryza
bd61a1540e Added support for switch statements in sequence diagrams 2022-12-13 21:09:34 +01:00
Bartek Kryza
2d72d98234 Updated test case documentation 2022-12-13 00:34:23 +01:00
Bartek Kryza
3020ffd69f Added support for try/catch statements in sequence diagrams 2022-12-13 00:30:12 +01:00
Bartek Kryza
91a9aa861d Added highlight of calls within condition statements in loops 2022-12-12 22:55:57 +01:00
Bartek Kryza
d7c13edbf9 Added highlight of calls within condition statements of if/else blocks 2022-12-12 21:15:05 +01:00
Bartek Kryza
b2396d7b44 Merge pull request #61 from bkryza/add-sequence-diagram-support-for-template-code-2
Add sequence diagram support for template code
2022-12-12 00:08:27 +01:00
Bartek Kryza
8dd35d11e9 Updated test case documentation 2022-12-11 23:35:31 +01:00
Bartek Kryza
62e4467665 Fixed formatting 2022-12-11 23:33:40 +01:00
Bartek Kryza
8a167a5ccc Added example clang-uml sequence diagrams 2022-12-11 23:33:15 +01:00
Bartek Kryza
9fcfaf4cd8 Updated test case documentation 2022-12-11 23:13:15 +01:00
Bartek Kryza
4a3f87caef Updated gitignore 2022-12-11 23:11:12 +01:00
Bartek Kryza
452271fd45 Refactored verbosity option to counter (none), -v, -vv, -vvv (trace) 2022-12-11 23:08:53 +01:00
Bartek Kryza
c7b80297d7 Added forward class declaration sequence diagram test case 2022-12-11 22:48:56 +01:00
Bartek Kryza
fb2bc68d39 Refactor HasCall sequence diagram test cases matcher 2022-12-11 22:32:32 +01:00
Bartek Kryza
e5e7df43e8 Refactored sequence diagram model classes 2022-12-11 21:21:27 +01:00
Bartek Kryza
29b679b0a4 Fixed id resolution of callexpr callees by function declaration 2022-12-11 19:10:13 +01:00
Bartek Kryza
70cb58fce9 Updated test case documentation 2022-12-11 02:18:05 +01:00
Bartek Kryza
cbab8b5e74 Fixed formatting 2022-12-11 02:03:57 +01:00
Bartek Kryza
dcdde1af4b Fixed if constexpr sequence diagram handling 2022-12-11 02:03:26 +01:00
Bartek Kryza
0c23ce86ba Added loop statement sequence diagram support 2022-12-11 01:50:54 +01:00
Bartek Kryza
13dae33d99 Added if statement sequence diagram support 2022-12-11 00:12:31 +01:00
Bartek Kryza
dae8513529 Updated test case documentation 2022-12-10 16:37:28 +01:00
Bartek Kryza
310f311232 Added hyperlink generation in sequence diagrams 2022-12-10 16:34:57 +01:00
Bartek Kryza
3b6d999520 Added Curiously Recurring Template Pattern sequence diagram test case 2022-12-10 12:06:12 +01:00
Bartek Kryza
80e94c2e32 Updated recursive template sequence diagram test case 2022-12-10 11:24:00 +01:00
Bartek Kryza
8e3a7ed436 Updated test case documentation 2022-12-09 23:49:34 +01:00
Bartek Kryza
757dd3eed9 Added recursive template sequence diagram test case 2022-12-09 23:34:52 +01:00
Bartek Kryza
fef88325ab Added support for styling static methods in sequence diagrams 2022-12-09 23:08:16 +01:00
Bartek Kryza
290e1ab0fe Fixed formatting 2022-12-09 22:12:49 +01:00
Bartek Kryza
69ca8c2d8e Added start_from function and method entrypoints in sequence diagrams 2022-12-09 22:12:24 +01:00
Bartek Kryza
caf0ae7928 Added combine_free_functions_into_file_participants sequence diagram option 2022-12-09 00:10:38 +01:00
Bartek Kryza
6478cffa27 Updated test case documentation 2022-12-08 00:45:19 +01:00
Bartek Kryza
0a0b2a3d35 Added template method specialization sequence diagram test case 2022-12-08 00:41:54 +01:00
Bartek Kryza
de4e88a92d Added class exclusion by namespace in sequence diagram test case 2022-12-06 22:31:54 +01:00
Bartek Kryza
8d8b3415f7 Added automatic call tracing through lambdas passed to functions as params 2022-12-06 20:14:42 +01:00
Bartek Kryza
1ca44c5a0d Updated test case documentation 2022-12-06 00:36:13 +01:00
Bartek Kryza
db3381865e Updated test case documentation 2022-12-06 00:33:08 +01:00
Bartek Kryza
f7a1130bab Added test case for sequence diagram with multiple translation units 2022-12-05 23:57:00 +01:00
Bartek Kryza
14c2cb6263 Fixed handling of arguments in sequence diagrams 2022-12-04 23:38:26 +01:00
Bartek Kryza
1644a201d0 Added function and method arguments in sequence diagrams 2022-12-04 22:51:57 +01:00
Bartek Kryza
5a8b739eba Fixed GitHub Actions build 2022-12-04 15:04:36 +01:00
Bartek Kryza
664a74faee Updated test case documentation 2022-12-04 14:49:21 +01:00
Bartek Kryza
af8d7d704a Updated test case documentation 2022-12-04 14:46:44 +01:00
Bartek Kryza
7ddd81c1b7 Fixed formatting 2022-12-04 14:42:15 +01:00
Bartek Kryza
10da4ad164 Refactored sequence diagram call expression processing 2022-12-04 14:41:23 +01:00
Bartek Kryza
b87c6acd44 Refactored lambda naming in sequence diagrams 2022-12-04 13:19:44 +01:00
Bartek Kryza
f07b35802a Refactored call expression context in sequence diagram visitor 2022-12-04 12:42:36 +01:00
Bartek Kryza
8684bc861b Fixed lambda sequence diagram test case 2022-12-04 12:10:52 +01:00
Bartek Kryza
d1d4d5e0e7 Adding handling of lambda expressions in sequence diagrams 2022-12-04 01:33:02 +01:00
Bartek Kryza
459baa326c Updated test case documentation 2022-11-30 21:32:37 +01:00
Bartek Kryza
68241ea9c8 Added recursive call generated in sequence diagram test case 2022-11-30 21:11:32 +01:00
Bartek Kryza
73f399c8a0 Added standard container sequence diagram test case 2022-11-30 20:21:55 +01:00
Bartek Kryza
115ede3cc7 Added smart pointer alias to t20009 test case 2022-11-30 19:50:40 +01:00
Bartek Kryza
9c3d65bf47 Added calls through pointers and references in template instantiation sequence diagram test case 2022-11-29 22:56:16 +01:00
Bartek Kryza
0e3c69ce38 Added smart pointer dereference sequence diagram test case 2022-11-29 22:09:04 +01:00
Bartek Kryza
f1af5460e3 Refactored sequence diagram visitor 2022-11-27 19:15:31 +01:00
Bartek Kryza
da5a4f8c5d Updated test case documentation 2022-11-27 15:26:21 +01:00
Bartek Kryza
93e95613b4 Fixed formatting 2022-11-27 15:24:01 +01:00
Bartek Kryza
df0163cdbf Added constexpr if sequence diagram test case 2022-11-27 15:23:32 +01:00
Bartek Kryza
b36355352d Added variadic class template sequence diagram test case 2022-11-27 15:21:22 +01:00
Bartek Kryza
e586c9d062 Added basic test case for sequence diagrams with class template specializations 2022-11-27 12:51:02 +01:00
Bartek Kryza
c7bfcbd66f Fixed building on LLVM 12 2022-11-23 00:24:17 +01:00
Bartek Kryza
e2f34c7dda Updated test case documentation 2022-11-23 00:09:00 +01:00
Bartek Kryza
b264ef5402 Added basic test case for sequence diagrams with template specializations 2022-11-23 00:06:18 +01:00
Bartek Kryza
4513e17275 Adding template class specialization sequence diagram test case 2022-11-21 23:56:02 +01:00
Bartek Kryza
f3aec40b2a Fixed test case with template class sequence diagram 2022-11-13 14:33:03 +01:00
Bartek Kryza
a1e447966d WIP 2022-11-13 02:49:09 +01:00
Bartek Kryza
558d1b6eff Updated test case documentation 2022-11-05 13:54:28 +01:00
Bartek Kryza
1dfade12f0 Fixed initial function template specialization sequence diagram test case 2022-11-05 13:52:54 +01:00
Bartek Kryza
c94d1dea3f Fixed sequence diagram participant ordering 2022-11-02 19:09:18 +01:00
Bartek Kryza
ae23505839 Updated test case documentation 2022-11-02 18:07:57 +01:00
Bartek Kryza
54a66ae58b Fixed formatting 2022-11-01 23:34:20 +01:00
Bartek Kryza
488dd883cc Fixed test case t20003 crash on LLVM 12 2022-11-01 23:33:47 +01:00
Bartek Kryza
0d90fdc133 Updated test case t00037 with round brackets in names 2022-11-01 22:28:05 +01:00
Bartek Kryza
17c463cebb Fixed simple template instantiation sequence diagram test case 2022-11-01 22:11:48 +01:00
Bartek Kryza
6df8c790f5 Fixed formatting 2022-11-01 21:52:34 +01:00
Bartek Kryza
c2d9596e7c Fixed simple template instantiation sequence diagram test case 2022-11-01 21:52:12 +01:00
Bartek Kryza
08d0431a14 Fixed template function sequence diagram test case 2022-10-30 10:17:47 +01:00
Bartek Kryza
4f1a143a1b Fixed base sequence diagram test cases after refactor 2022-10-24 23:52:54 +02:00
Bartek Kryza
ad5ec1c973 Added participant generation in sequence diagrams 2022-10-24 01:09:40 +02:00
Bartek Kryza
1fe9918c1a Initial refactoring of sequence diagram visitor to include participants 2022-10-23 22:36:53 +02:00
Bartek Kryza
a2705b10d9 Added template function sequence diagram test case 2022-09-27 23:12:46 +02:00
Bartek Kryza
511c8d0f65 WIP 2022-09-26 19:21:51 +02:00
Bartek Kryza
9280155d40 Updated test cases documentation 2022-09-24 01:12:28 +02:00
Bartek Kryza
65c813a70e Fixed comment directives in test cases 2022-09-24 00:59:34 +02:00
Bartek Kryza
9c4a7f324d Releasing version 0.2.2 2022-09-23 22:34:26 +02:00
Bartek Kryza
5948783deb Updated test cases documentation 2022-09-22 23:42:46 +02:00
Bartek Kryza
7b20a491b4 Added paragaph array to clang comment parser 2022-09-22 19:33:24 +02:00
Bartek Kryza
9bb2a6e8c9 Updated changelog 2022-09-22 19:30:57 +02:00
Bartek Kryza
0cdae33f1c Updated test cases documentation 2022-09-22 00:39:13 +02:00
Bartek Kryza
4449782fb5 Merge pull request #56 from bkryza/add-structured-comment-parsing
Add structured comment parsing
2022-09-22 00:37:07 +02:00
Bartek Kryza
59aa755e6f Added jinja template documentation example 2022-09-21 23:48:29 +02:00
Bartek Kryza
4caf7308b2 Fixed namespace exclusion filtering 2022-09-21 23:24:29 +02:00
Bartek Kryza
920388d84a Refactored comment parsing to clang comments 2022-09-18 23:57:22 +02:00
Bartek Kryza
e45458de62 Extended inja comment test case 2022-09-16 18:21:03 +02:00
Bartek Kryza
d406991681 Updated test cases documentation 2022-09-15 23:39:03 +02:00
Bartek Kryza
3bbaf91511 Fixed formatting 2022-09-15 23:36:56 +02:00
Bartek Kryza
17db587426 Added support for iterating over diagram elements from inja templates (fixes #54) 2022-09-15 23:36:29 +02:00
Bartek Kryza
693a09e20d Added test case for accessing comments from inja templates 2022-09-15 23:35:38 +02:00
Bartek Kryza
371ad836eb Updated test cases documentation 2022-09-14 00:33:02 +02:00
Bartek Kryza
9a19cd50d7 Changed naming of elements nested in template declarations 2022-09-14 00:31:02 +02:00
Bartek Kryza
0d5091418e Fixed t40001 test case on archlinux 2022-09-13 18:47:42 +02:00
Bartek Kryza
c07809147d Updated test cases documentation 2022-09-13 01:21:23 +02:00
Bartek Kryza
001b093175 Extended nested class test case with nested template instantiations 2022-09-13 01:18:30 +02:00
Bartek Kryza
56e1010142 Updated version badge 2022-09-10 21:43:27 +02:00
658 changed files with 69544 additions and 8740 deletions

67
.clang-tidy Normal file
View File

@@ -0,0 +1,67 @@
Checks: >-
*,
-altera*,
-*braces-around-statements,
-*osx*,
-abseil*,
-android*,
-bugprone-branch-clone,
-bugprone-exception-escape,
-bugprone-easily-swappable-parameters,
-clang-analyzer-alpha.*,
-clang-analyzer-core.StackAddressEscape,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
-cppcoreguidelines-macro-usage,
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
-cppcoreguidelines-special-member-functions,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cert-env33-c,
-cert-err58-cpp,
-cert-dcl58-cpp,
-fuchsia*,
-hicpp-no-array-decay,
-hicpp-special-member-functions,
-google-readability-todo,
-google-default-arguments,
-google-explicit-constructor,
-google-build-using-namespace,
-hicpp-signed-bitwise,
-hicpp-explicit-conversions,
-llvmlibc-*,
-llvm-header-guard,
-llvm-namespace-comment,
-misc-no-recursion,
-misc-non-private-member-variables-in-classes,
-misc-const-correctness,
-modernize-use-nodiscard,
-modernize-use-trailing-return-type,
-modernize-concat-nested-namespaces,
-mpi*,
-objc*,
-openmp*,
-readability-inconsistent-declaration-parameter-name,
-readability-identifier-length,
-readability-identifier-naming,
-readability-redundant-smartptr-get,
-readability-convert-member-functions-to-static,
-readability-function-cognitive-complexity,
-readability-const-return-type,
-readability-simplify-boolean-expr,
-darwin*,
-zircon*
WarningsAsErrors: '*'
HeaderFilterRegex: 'src'
CheckOptions:
- key: readability-identifier-naming.ClassMemberSuffix
value: '_'
- key: readability-identifier-naming.PublicMemberSuffix
value: ''
- key: performance-unnecessary-value-param.AllowedTypes
value: shared_ptr;weak_ptr
- key: misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic
value: 1
- key: hicpp-special-member-functions.AllowSoleDefaultDtor
value: 1
- key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
value: 1

View File

@@ -1,8 +1,8 @@
compilation_database_dir: debug
output_directory: docs/diagrams
generate_links:
link: 'https://github.com/bkryza/clang-uml/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 %}'
link: https://github.com/bkryza/clang-uml/blob/{{ git.commit }}/{{ element.source.path }}#L{{ element.source.line }}
tooltip: "{% if existsIn(element, \"comment\") and existsIn(element.comment, \"brief\") %}{{ abbrv(trim(replace(element.comment.brief.0, \"\\n+\", \" \")), 256) }}{% else %}{{ element.name }}{% endif %}"
diagrams:
main_package:
include!: uml/main_package_diagram.yml
@@ -16,7 +16,13 @@ diagrams:
include!: uml/class_model_class_diagram.yml
sequence_model_class:
include!: uml/sequence_model_class_diagram.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
package_model_class:
include!: uml/package_model_class_diagram.yml
include_graph:
include!: uml/include_diagram.yml
include!: uml/include_diagram.yml

View File

@@ -1,24 +1,45 @@
name: build
on: [push, pull_request]
on:
push:
paths-ignore:
- 'docs/**'
- 'packaging/**'
- 'util/**'
- 'uml/**'
- '**.md'
branches-ignore:
- 'noactions/*'
pull_request:
paths-ignore:
- 'docs/**'
- 'packaging/**'
- 'util/**'
- 'uml/**'
- '**.md'
branches-ignore:
- 'noactions/*'
jobs:
build-ubuntu:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Update package database
run: sudo apt -y update
- name: Install deps
run: sudo apt -y install git make gcc-10 g++-10 ccache cmake libyaml-cpp-dev llvm-12 clang-12 libclang-12-dev libclang-cpp12-dev lcov zlib1g-dev
run: sudo apt -y install git make pkg-config gcc-11 g++-11 ccache cmake libyaml-cpp-dev llvm-15 clang-15 libclang-15-dev libclang-cpp15-dev clang-format-15 lcov zlib1g-dev libunwind-dev libdw-dev
- name: Select g++ version
run: |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11
- name: Check code formatting
run: |
make check-formatting
- name: Build and unit test
run: |
NUMPROC=2 CMAKE_CXX_FLAGS="--coverage -fno-inline" CMAKE_EXE_LINKER_FLAGS="-lgcov --coverage" LLVM_VERSION=12 make test
NUMPROC=2 CMAKE_CXX_FLAGS="--coverage -fno-inline" CMAKE_EXE_LINKER_FLAGS="-lgcov --coverage" LLVM_VERSION=15 make test
- name: Run coverage
run: |
lcov -c -d debug -o coverage.info

3
.gitignore vendored
View File

@@ -10,6 +10,7 @@ compile_commands.json
CTestTestfile.cmake
Session.vim
_deps
_tidy
/build/
lib/
bin/
@@ -18,6 +19,7 @@ bin/
/puml/
/debug/
/release/
/debug_tidy
/.cache
docs/diagrams
@@ -31,3 +33,4 @@ packaging/conda/meta.yaml
.idea/
cmake-build-
cmake-build-*
.run/

3
AUTHORS.md Normal file
View File

@@ -0,0 +1,3 @@
# Authors
Bartek Kryza <bkryza@gmail.com>

View File

@@ -1,5 +1,37 @@
# CHANGELOG
### 0.3.3
* Added 'add_compile_flags' config options (#112)
* Added JSON generator (#114)
* Added diagram templates support (#105)
* Added parents (base classes) diagram filter
* Fixed namespace handling for nested template specializations
### 0.3.2
* Added initial support for C++20 concept rendering (#96)
* Added support for plain C11 translation units (#97)
* Added 'row' and 'column' layout hints for aligning elements (#90)
* Added 'together' layout hint for grouping elements (#43)
* Enabled adding notes to class methods and members (#87)
* Improved rendering of template methods in class diagrams (#83)
### 0.3.1
* Added relationship deduction from `auto` return types which are template
specializations (#82)
* Fixed lambda names in class diagrams to be based on relative paths
with respect to `relative_to` config option (#78)
* Fixed relative paths in config files to be relative to the parent of
the configuration file by default (#69)
* Added command line option (--dump-config) to print effective config (#77)
* Added support for building with Microsoft Visual Studio
### 0.3.0
* Added support for sequence diagrams with template code
### 0.2.2
* Added structured comment parsing (#32)
* Fixed namespace exclusive filtering
### 0.2.1
* Fixed handling of classes nested in templates and anonymous nested structs
* Fixed handling of configurable type aliases

View File

@@ -3,29 +3,54 @@ cmake_minimum_required(VERSION 3.12)
#
# Project name
#
project(clang-uml)
project(clang-uml C CXX)
#
# CMake standard defines
#
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_VERBOSE_MAKEFILE OFF)
set(CMAKE_FIND_DEBUG_MODE OFF)
if(UNIX AND NOT APPLE)
set(LINUX TRUE)
endif()
#
# C++ setup
#
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
if(APPLE)
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
endif(APPLE)
#
# clang-uml custom defines
#
set(CLANG_UML_INSTALL_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include)
set(CLANG_UML_INSTALL_BIN_DIR ${PROJECT_SOURCE_DIR}/bin)
set(UML_HEADERS_DIR ${PROJECT_SOURCE_DIR}/src/uml)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
#
# CMake build options
#
option(LINK_LLVM_SHARED "Should LLVM be linked using shared libraries or statically" ON)
option(LINK_LLVM_SHARED "Should LLVM be linked using shared libraries" ON)
set(LLVM_VERSION CACHE STRING "Path to custom llvm-config executable")
set(GIT_VERSION "0.1.0" CACHE STRING "clang-uml version")
#
# Setup version string
#
include(GitVersion)
setup_git_version()
message(STATUS "clang-uml version: "
"${GIT_VERSION_MAJOR}.${GIT_VERSION_MINOR}.${GIT_VERSION_PATCH}")
#
# Setup LLVM
@@ -46,6 +71,12 @@ message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_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)
@@ -56,6 +87,7 @@ else(LINK_LLVM_SHARED)
clangDriver
clangParse
clangSema
clangSupport
clangAnalysis
clangAST
clangBasic
@@ -75,8 +107,23 @@ else(LINK_LLVM_SHARED)
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()
#
# Setup threads library
#
@@ -87,50 +134,47 @@ find_package(Threads REQUIRED)
#
message(STATUS "Checking for yaml-cpp...")
if(APPLE)
find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
pkg_check_modules(YAML_CPP yaml-cpp)
find_path(YAML_CPP_INCLUDE_DIR
NAMES yaml.h
PATHS ${YAML_CPP_INCLUDE_DIR} /usr/local/include/yaml-cpp)
find_library(YAML_CPP_LIBRARY
NAMES yaml-cpp
PATHS ${YAML_CPP_LIBRARIES} /usr/local/lib)
set(YAML_CPP_LIBRARY_DIR /usr/local/lib)
endif()
else(APPLE)
find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
pkg_check_modules(YAML_CPP yaml-cpp)
find_path(YAML_CPP_INCLUDE_DIR
NAMES yaml.h
PATHS ${YAML_CPP_INCLUDE_DIR} /usr/local/include/yaml-cpp)
find_library(YAML_CPP_LIBRARY
NAMES yaml-cpp
PATHS ${YAML_CPP_LIBRARIES} /usr/local/lib)
set(YAML_CPP_LIBRARY_DIR /usr/local/lib)
endif(PKG_CONFIG_FOUND)
elseif(MSVC)
set(YAML_CPP_LIBRARIES "yaml-cpp")
else()
find_package(yaml-cpp REQUIRED)
endif(APPLE)
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wall -Wextra -std=c++17 -Wno-unused-parameter -Wno-unused-private-field")
if("${YAML_CPP_LIBRARIES}" STREQUAL "")
message(FATAL_ERROR "Failed to find yaml-cpp library!")
else()
message(STATUS "Found yaml-cpp libraries: ${YAML_CPP_LIBRARIES}")
endif()
link_directories(${LLVM_LIBRARY_DIR} ${YAML_CPP_LIBRARY_DIR})
#
# Setup libdw and libunwind
#
if(LINUX AND (CMAKE_BUILD_TYPE MATCHES Debug))
find_package(PkgConfig REQUIRED)
pkg_check_modules(DW REQUIRED IMPORTED_TARGET libdw)
pkg_check_modules(UNWIND REQUIRED IMPORTED_TARGET libunwind)
set(BACKWARD_CPP_LIBRARIES PkgConfig::DW PkgConfig::UNWIND)
set(ENABLE_BACKWARD_CPP -DENABLE_BACKWARD_CPP)
endif()
#
# Setup thirdparty sources
#
set(THIRDPARTY_HEADERS_DIR ${PROJECT_SOURCE_DIR}/thirdparty/)
#
# Configure clang-uml executable version
#
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/src/version)
configure_file(src/version.h.in ${PROJECT_BINARY_DIR}/src/version/version.h)
#
# Handle various compiler quirks
#
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
execute_process(COMMAND gcc --print-file-name=include
OUTPUT_STRIP_TRAILING_WHITESPACE
OUTPUT_VARIABLE GCC_STDDEF_INCLUDE)
message(STATUS "FOUND GCC STDDEF INCLUDE ${GCC_STDDEF_INCLUDE}")
include_directories(${GCC_STDDEF_INCLUDE})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${GCC_STDDEF_INCLUDE}")
endif()
message(STATUS "Using CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
#
# Setup include directories
#
@@ -142,43 +186,13 @@ include_directories(${THIRDPARTY_HEADERS_DIR})
include_directories(${PROJECT_SOURCE_DIR}/src/)
include_directories(${PROJECT_BINARY_DIR}/src/version)
#
# Generate source list dynamically
#
file(GLOB_RECURSE SOURCES src/*.cc include/*.h)
set(MAIN_SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cc)
list(REMOVE_ITEM SOURCES ${MAIN_SOURCE_FILE})
#
# Define library target for linking with test cases and output executable
#
add_library(clang-umllib OBJECT ${SOURCES})
#
# Define the target executable clang-uml
#
add_executable(clang-uml ${MAIN_SOURCE_FILE})
target_link_libraries(clang-uml
${YAML_CPP_LIBRARIES}
${LIBTOOLING_LIBS}
clang-umllib
Threads::Threads)
target_compile_features(clang-uml PRIVATE cxx_std_17)
#
# Setup install options
#
include(GNUInstallDirs)
install(TARGETS clang-uml DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
install(FILES README.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
add_subdirectory(src)
#
# Enable testing via CTest
#
enable_testing()
add_subdirectory(tests)
option(BUILD_TESTS "" ON)
if(BUILD_TESTS)
enable_testing()
add_subdirectory(tests)
endif(BUILD_TESTS)

View File

@@ -64,6 +64,11 @@ Thanks for taking interest in `clang-uml`!
make format
git add . && git commit -m "Fixed formatting"
```
* Make sure the code doesn't introduce any `clang-tidy` warnings:
```bash
make tidy
```
* Create a pull request from your branch to `master` branch
## If you would like to add a feature
@@ -79,6 +84,7 @@ Thanks for taking interest in `clang-uml`!
* 80-character line width
* snakes over camels
* use `make format` before submitting PR to ensure consistent formatting
* 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
* Finally, create a pull request!

View File

@@ -179,7 +179,7 @@ recommend that a file or class name and description of purpose be included on
the same “printed page” as the copyright notice for easier identification within
third-party archives.
Copyright [yyyy] [name of copyright owner]
Copyright 2021-2023 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.

View File

@@ -1,6 +1,6 @@
# Makefile
#
# Copyright (c) 2021-2022 Bartek Kryza <bkryza@gmail.com>
# Copyright (c) 2021-2023 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.
@@ -20,17 +20,28 @@
.DEFAULT_GOAL := debug
NUMPROC ?= $(shell nproc)
OS_UNAME := $(shell uname -s)
ifeq ($(OS_UNAME),Linux)
NUMPROC ?= $(shell nproc)
else ifeq ($(OS_UNAME),Darwin)
NUMPROC ?= $(shell sysctl -n hw.logicalcpu)
else
NUMPROC ?= 1
endif
LLVM_VERSION ?=
CMAKE_CXX_FLAGS ?=
CMAKE_EXE_LINKER_FLAGS ?=
GIT_VERSION ?= $(shell git describe --tags --always --abbrev=7)
PKG_VERSION ?= $(shell git describe --tags --always --abbrev=7 | tr - .)
GIT_COMMIT ?= $(shell git rev-parse HEAD)
GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
.PHONY: clean
clean:
rm -rf debug release
rm -rf debug release debug_tidy
debug/CMakeLists.txt:
cmake -S . -B debug \
@@ -48,12 +59,26 @@ release/CMakeLists.txt:
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="$(CMAKE_CXX_FLAGS)" \
-DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION}
-DLLVM_VERSION=${LLVM_VERSION}
debug_tidy/CMakeLists.txt:
cmake -S . -B debug_tidy \
-DGIT_VERSION=$(GIT_VERSION) \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_BUILD_TYPE=Debug \
-DBUILD_TESTS=OFF \
-DCMAKE_CXX_FLAGS="$(CMAKE_CXX_FLAGS)" \
-DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION}
debug: debug/CMakeLists.txt
echo "Using ${NUMPROC} cores"
make -C debug -j$(NUMPROC)
debug_tidy: debug_tidy/CMakeLists.txt
echo "Using ${NUMPROC} cores"
make -C debug_tidy -j$(NUMPROC)
release: release/CMakeLists.txt
make -C release -j$(NUMPROC)
@@ -72,8 +97,8 @@ document_test_cases: test_plantuml
clanguml_diagrams: debug
mkdir -p docs/diagrams
debug/clang-uml
plantuml -tsvg docs/diagrams/*.puml
debug/src/clang-uml -g plantuml -g json
plantuml -tsvg -nometadata docs/diagrams/*.puml
python3 util/format_svg.py docs/diagrams/*.svg
.PHONY: submodules
@@ -89,14 +114,38 @@ init_compile_commands: debug
.PHONY: clang-format
clang-format:
docker run --rm -v $(CURDIR):/root/sources bkryza/clang-format-check:1.3
docker run --rm -v $(CURDIR):/root/sources bkryza/clang-format-check:1.4
.PHONY: format
format:
docker run --rm -v $(CURDIR):/root/sources bkryza/clang-format-check:1.3
docker run --rm -v $(CURDIR):/root/sources bkryza/clang-format-check:1.4
.PHONY: debug_tidy
tidy: debug_tidy
run-clang-tidy-15 -j $(NUMPROC) -p debug_tidy ./src
.PHONY: check-formatting
check-formatting:
./util/check_formatting.sh
.PHONY: iwyu_fixes
iwyu_fixes: debug
python3 $(shell which iwyu_tool.py) -p debug > debug/iwyu.out
python3 $(shell which fix_includes.py) -h --re_only="${PWD}/src/.*" < debug/iwyu.out
python3 $(shell which fix_includes.py) -h --re_only="${PWD}/tests/.*" < debug/iwyu.out
.PHONY: docs
docs:
make -C docs toc
.PHONY: fedora_36
fedora_36:
mkdir -p packaging/_BUILD/fedora/36
git archive --format=tar.gz --prefix=clang-uml-$(PKG_VERSION)/ v$(GIT_VERSION) >packaging/_BUILD/fedora/36/clang-uml-$(PKG_VERSION).tar.gz
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"
.PHONY: fedora_37
fedora_37:
mkdir -p packaging/_BUILD/fedora/37
git archive --format=tar.gz --prefix=clang-uml-$(PKG_VERSION)/ v$(GIT_VERSION) >packaging/_BUILD/fedora/37/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"

247
README.md
View File

@@ -1,22 +1,23 @@
# clang-uml - C++ UML diagram generator based on Clang and PlantUML
[<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)
# 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)
[![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.2.0-blue)](https://github.com/bkryza/clang-uml/releases)
[![Version](https://img.shields.io/badge/version-0.3.2-blue)](https://github.com/bkryza/clang-uml/releases)
[![Version](https://img.shields.io/badge/LLVM-12,13,14,15-orange)](https://github.com/bkryza/clang-uml/releases)
`clang-uml` is an automatic C++ to [PlantUML](https://plantuml.com) class, sequence
and package diagram generator, driven by YAML configuration files. The main idea behind the
`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
type and contents of each generated diagram.
The diagrams can be generated in [PlantUML](https://plantuml.com) and JSON formats.
`clang-uml` currently supports C++ up to version 17.
> Current `master` version (and any release since `0.2.0`) has been refactored to use
> [Clang LibTooling](https://clang.llvm.org/docs/LibTooling.html) instead of libclang.
> Previous version is available in branch `0.1.x`, however it is not maintained.
`clang-uml` currently supports C++ up to version 17 and partial support for C++ 20.
## Features
Main features supported so far include:
* **Class diagram generation**
@@ -27,87 +28,58 @@ Main features supported so far include:
* Diagram content filtering based on namespaces, elements and relationships
* Optional package generation from namespaces
* Interactive links to online code to classes, methods and class fields in SVG diagrams
* Support for plain C99/C11 code (struct and units relationships)
* C++20 concept constraints
* **Sequence diagram generation**
* Generation of sequence diagram from one code location to another (currently only for non-template code)
* Generation of sequence diagram from specific method or function
* Generation of loop and conditional statements
* Generation of switch statements
* Generation of try/catch blocks
* Handling of template code including constexpr conditionals
* Handling of lambda expressions
* Interactive links to online code to classes and call expressions
* **Package diagram generation**
* Generation of package diagram based on C++ namespaces
* Interactive links to online code to packages
* **Include graph diagram generation**
* Show include graph for selected files
To see what `clang-uml` can do so far, checkout the diagrams generated for unit test cases [here](./docs/test_cases.md)
and examples in [clang-uml-examples](https://github.com/bkryza/clang-uml-examples) repository.
To see what `clang-uml` can do so far, checkout the diagrams generated for unit
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
### Distribution packages
#### Ubuntu
```bash
sudo add-apt-repository ppa:bkryza/clang-uml
sudo apt update
sudo apt install clang-uml
```
#### Conda
```bash
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install -c bkryza/label/clang-uml clang-uml
```
### Building from source
First make sure that you have the following dependencies installed:
```bash
# Ubuntu (clang version will vary depending on Ubuntu version)
apt install ccache cmake libyaml-cpp-dev clang-12 libclang-12-dev libclang-cpp12-dev
# macos
brew install ccache cmake llvm yaml-cpp
```
Then proceed with building the sources:
```bash
git clone https://github.com/bkryza/clang-uml
cd clang-uml
# Please note that top level Makefile is just a convenience wrapper for CMake
make release
release/clang-uml --help
# To build using a specific installed version of LLVM use:
LLVM_VERSION=14 make release
# Optionally
make install
# or
export PATH=$PATH:$PWD/release
# On macos, it is necessary to build clang-uml using the same llvm against which it is linked, e.g.
export CC=/usr/local/opt/llvm/bin/clang
export CCX=/usr/local/opt/llvm/bin/clang++
LLVM_VERSION=14 make release
```
Installation instructions for `Linux`, `macos` and `Windows` can be found
[here](./docs/installation.md).
## Usage
### Generating compile commands database
`clang-uml` requires an up-to-date
[compile_commands.json](https://clang.llvm.org/docs/JSONCompilationDatabase.html)
file, containing the list of commands used for compiling the source code.
Nowadays, this file can be generated rather easily using multiple methods:
* For [CMake](https://cmake.org/) projects, simply invoke the `cmake` command
as `cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ...`
* For Make projects checkout [compiledb](https://github.com/nickdiego/compiledb) or [Bear](https://github.com/rizsotto/Bear)
* For Boost-based projects 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 [CMake](https://cmake.org/) projects, simply invoke the `cmake` command
as `cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ...`
* For Make projects checkout [compiledb](https://github.com/nickdiego/compiledb)
or [Bear](https://github.com/rizsotto/Bear)
* For Boost-based projects
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 Microsoft Visual Studio projects try [Clang Power Tools](https://www.clangpowertools.com)
### Invocation
By default, `config-uml` will assume that the configuration file `.clang-uml`
and compilation database `compile_commands.json` files are in the
current directory, so if they are in the top level directory of a project,
simply run:
```bash
clang-uml
```
@@ -116,6 +88,7 @@ The output path for diagrams, as well as alternative location of
compilation database can be specified in `.clang-uml` configuration file.
For other options checkout help:
```bash
clang-uml --help
```
@@ -149,6 +122,7 @@ diagrams:
See [here](docs/configuration_file.md) for detailed configuration file reference guide.
## Examples
To see what `clang-uml` can do, checkout the test cases documentation [here](./docs/test_cases.md).
In order to see diagrams for the `clang-uml` itself, based on its own [config](.clang-uml) run
@@ -164,7 +138,7 @@ and checkout the SVG diagrams in `docs/diagrams` folder.
#### Example
Source code:
The following C++ code:
```cpp
template <typename T, typename P> struct A {
@@ -239,73 +213,72 @@ generates the following diagram (via PlantUML):
The following C++ code:
```cpp
#include <algorithm>
#include <numeric>
#include <vector>
#include <atomic>
#include <functional>
#include <iostream>
#include <memory>
#include <string>
namespace clanguml {
namespace t20001 {
namespace t20029 {
std::string encode_b64(std::string &&content) { return std::move(content); }
namespace detail {
struct C {
auto add(int x, int y) { return x + y; }
};
}
class A {
template <typename T> class Encoder : public T {
public:
A() {}
int add(int x, int y) { return m_c.add(x, y); }
int add3(int x, int y, int z)
bool send(std::string &&msg)
{
std::vector<int> v;
v.push_back(x);
v.push_back(y);
v.push_back(z);
auto res = add(v[0], v[1]) + v[2];
log_result(res);
return res;
return T::send(std::move(encode(std::move(msg))));
}
void log_result(int r) {}
private:
detail::C m_c{};
protected:
std::string encode(std::string &&msg) { return encode_b64(std::move(msg)); }
};
class B {
template <typename T> class Retrier : public T {
public:
B(A &a)
: m_a{a}
bool send(std::string &&msg)
{
std::string buffer{std::move(msg)};
int retryCount = 5;
while (retryCount--) {
if (T::send(buffer))
return true;
}
return false;
}
};
class ConnectionPool {
public:
void connect()
{
if (!is_connected_.load())
connect_impl();
}
int wrap_add(int x, int y)
{
auto res = m_a.add(x, y);
m_a.log_result(res);
return res;
}
int wrap_add3(int x, int y, int z)
{
auto res = m_a.add3(x, y, z);
m_a.log_result(res);
return res;
}
bool send(const std::string &msg) { return true; }
private:
A &m_a;
void connect_impl() { is_connected_ = true; }
std::atomic<bool> is_connected_;
};
int tmain()
{
A a;
B b(a);
auto pool = std::make_shared<Encoder<Retrier<ConnectionPool>>>();
return b.wrap_add3(1, 2, 3);
pool->connect();
for (std::string line; std::getline(std::cin, line);) {
if (!pool->send(std::move(line)))
break;
}
return 0;
}
}
}
@@ -313,7 +286,7 @@ int tmain()
generates the following diagram (via PlantUML):
![sequence_diagram_example](docs/test_cases/t20001_sequence.svg)
![sequence_diagram_example](docs/test_cases/t20029_sequence.svg)
### Package diagrams
@@ -399,6 +372,7 @@ generates the following diagram (via PlantUML) based on include directives in th
| Include (system) | ![dependency](docs/img/puml_dependency.png) |
### Diagram content filtering
For typical code bases, generating a single diagram from entire code or even a single namespace can be too big to
be useful, e.g. as part of documentation. `clang-uml` allows specifying content to be included and excluded from
each diagram using simple YAML configuration:
@@ -436,47 +410,28 @@ exclude:
- clanguml::common::ClassF
```
### Comment decorators
`clang-uml` provides a set of in-comment directives, called decorators, which allow custom control over
generation of UML diagrams from C++ and overriding default inference rules for relationships.
The following decorators are currently supported:
- [note](docs/test_cases/t00028.md) - add a PlantUML note to a C++ entity
- [skip](docs/test_cases/t00029.md) - skip the underlying C++ entity
- [skiprelationship](docs/test_cases/t00029.md) - skip only relationship generation for a class property
- [composition](docs/test_cases/t00030.md) - document the property as composition
- [association](docs/test_cases/t00030.md) - document the property as association
- [aggregation](docs/test_cases/t00030.md) - document the property as aggregation
- [style](docs/test_cases/t00031.md) - add PlantUML style to a C++ entity
### Doxygen integration
`clang-uml` decorstors can be omitted completely in [Doxygen](https://www.doxygen.nl/index.html), by adding the following
lines to the Doxygen config file:
```
ALIASES += clanguml=""
ALIASES += clanguml{1}=""
ALIASES += clanguml{2}=""
ALIASES += clanguml{3}=""
```
More details on this can be found in the [diagram filters](./docs/diagram_filters.md) documentation section.
### Test cases
The build-in test cases used for unit testing of the `clang-uml`, can be browsed [here](./docs/test_cases.md).
## Acknowledgements
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
* [PlantUML](https://plantuml.com/) - language and diagram for generating UML diagrams
* [Catch2](https://github.com/catchorg/Catch2) - C++ unit test framework
* [glob](https://github.com/p-ranav/glob) - Unix style path expansion 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++
* [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
* [Catch2](https://github.com/catchorg/Catch2) - C++ unit test framework
* [glob](https://github.com/p-ranav/glob) - Unix style path expansion 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++
* [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++
## Contributing
If you would like to contribute to the project, please checkout [contributing guidelines](./CONTRIBUTING.md).
If you would like to contribute to the project, please check out [contributing guidelines](./CONTRIBUTING.md).
## LICENSE

10
build.ps1 Normal file
View File

@@ -0,0 +1,10 @@
param ($Prefix="C:\clang-uml", $BuildType="Release")
cmake -S . -B $BuildType -DCMAKE_PREFIX_PATH="$Prefix" -Thost=x64
cmake --build $BuildType --config $BuildType
# Create compile commands in Visual Studio
# before running these tests
cd $BuildType
ctest -C $BuildType --output-on-failure
cd ..

27
cmake/GitVersion.cmake Normal file
View File

@@ -0,0 +1,27 @@
find_package(Git)
function(setup_git_version)
if(NOT DEFINED GIT_VERSION)
if(GIT_EXECUTABLE)
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --tags --always --abbrev=7
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_VERSION
RESULT_VARIABLE GIT_ERROR_CODE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif(GIT_EXECUTABLE)
endif(NOT DEFINED GIT_VERSION)
if(NOT DEFINED GIT_VERSION)
set(GIT_VERSION "0.0.0-unknown")
endif(NOT DEFINED GIT_VERSION)
string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.(.+)"
GIT_VERSION_MATCH ${GIT_VERSION})
set(GIT_VERSION_MAJOR ${CMAKE_MATCH_1} PARENT_SCOPE)
set(GIT_VERSION_MINOR ${CMAKE_MATCH_2} PARENT_SCOPE)
set(GIT_VERSION_PATCH ${CMAKE_MATCH_3} PARENT_SCOPE)
set(GIT_VERSION ${GIT_VERSION} PARENT_SCOPE)
endfunction()

39
docs/Makefile Normal file
View File

@@ -0,0 +1,39 @@
# docs/Makefile
#
# Copyright (c) 2021-2023 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.
UPDATE_TOC := markdown-toc --bullets "*" -i
.PHONY: toc
toc:
$(UPDATE_TOC) class_diagrams.md
$(UPDATE_TOC) comment_decorators.md
$(UPDATE_TOC) common_options.md
$(UPDATE_TOC) generator_types.md
$(UPDATE_TOC) configuration_file.md
$(UPDATE_TOC) diagram_filters.md
$(UPDATE_TOC) doxygen_integration.md
$(UPDATE_TOC) include_diagrams.md
$(UPDATE_TOC) installation.md
$(UPDATE_TOC) interactive_svg_diagrams.md
$(UPDATE_TOC) diagram_templates.md
$(UPDATE_TOC) jinja_templates.md
$(UPDATE_TOC) package_diagrams.md
$(UPDATE_TOC) quick_start.md
$(UPDATE_TOC) sequence_diagrams.md
$(UPDATE_TOC) test_cases.md
$(UPDATE_TOC) troubleshooting.md

20
docs/README.md Normal file
View File

@@ -0,0 +1,20 @@
# Documentation
* [Quick start](./quick_start.md)
* [Installation](./installation.md)
* Generating diagrams
* [Common options](./common_options.md)
* [Generator types](./generator_types.md)
* [Class diagrams](./class_diagrams.md)
* [Sequence diagrams](./sequence_diagrams.md)
* [Package diagrams](./package_diagrams.md)
* [Include diagrams](./include_diagrams.md)
* [Diagram templates](./diagram_templates.md)
* [Comment decorators](./comment_decorators.md)
* [Diagram filters](./diagram_filters.md)
* [Using Jinja templates in diagram configs](./jinja_templates.md)
* [Interactive SVG diagrams using links](./interactive_svg_diagrams.md)
* [Configuration file reference](./configuration_file.md)
* [Doxygen integration](./doxygen_integration.md)
* [Test cases documentation](./test_cases.md)
* [Troubleshooting](./troubleshooting.md)

170
docs/class_diagrams.md Normal file
View File

@@ -0,0 +1,170 @@
# Generating class diagrams
<!-- toc -->
* [Classes and their properties](#classes-and-their-properties)
* [Excluding private or protected members from the diagram](#excluding-private-or-protected-members-from-the-diagram)
* [Relationships](#relationships)
* [Relationships to classes in containers or smart pointers](#relationships-to-classes-in-containers-or-smart-pointers)
* [Inheritance diagrams](#inheritance-diagrams)
* [Namespaces as packages](#namespaces-as-packages)
* [Class context diagram](#class-context-diagram)
* [Disabling dependency relationships](#disabling-dependency-relationships)
<!-- tocstop -->
The minimal config required to generate a class diagram is presented below:
```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:
# Diagram name
t00002_class:
# Type of diagram (has to be `class`)
type: class
# Include only translation units matching the following patterns
glob:
- src/*.cc
# Render all names in the diagram relative to specific namespace
using_namespace:
- ns1
# Include only classes from specific namespace
include:
namespaces:
- ns1::ns2
```
## Classes and their properties
The basic class diagram generated by `clang-uml` and rendered using PlantUML looks like this:
![extension](test_cases/t00003_class.svg)
Member types and method return types are rendered at the end after `:` sign.
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
or abbreviated by setting `generate_method_arguments` option to either `none`, `abbreviated` or `full` (default).
### 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:
```yaml
include:
access:
- public
```
To render only classes without any properties an exclusion filter can be added:
```yaml
exclude:
access:
- public
- protected
- private
```
## Relationships
The following table presents the PlantUML arrows representing each relationship in the class diagrams.
| UML | PlantUML |
| ---- | --- |
| Inheritance | ![extension](img/puml_inheritance.png) |
| Association | ![association](img/puml_association.png) |
| Dependency | ![dependency](img/puml_dependency.png) |
| Aggregation | ![aggregation](img/puml_aggregation.png) |
| Composition | ![composition](img/puml_composition.png) |
| Template specialization/instantiation | ![specialization](img/puml_instantiation.png) |
| Nesting (inner class/enum) | ![nesting](img/puml_nested.png) |
By default, a member from which a relationship has been added to the diagram between 2 classes will also be rendered
inside the class. This behaviour can be however disabled by adding the following option to the
diagram definition:
```yaml
include_relations_also_as_members: false
```
### Relationships to classes in containers or smart pointers
`clang-uml` will automatically detect class members as well as method arguments, which reference or own
values of types relevant for a given diagram but wrapped in smart pointers or containers and still generate
relationship between these classes, for instance the following code:
```cpp
class A { };
class B { };
class C { };
class R {
public:
std::unique_ptr<A> a;
std::shared_ptr<B> b;
std::weak_ptr<C> c;
};
```
generates the following diagram:
![extension](test_cases/t00007_class.svg)
## Inheritance diagrams
A common type of class diagram is an inheritance diagram, where only subclasses of a specific base class are
included and only the inheritance relationships are rendered. This can be easily achieved in `clang-uml` through
inclusion filters:
```yaml
include:
subclasses:
- clanguml::t00039::A
relationships:
- inheritance
```
## Namespaces as 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
generate_packages: true
```
which results in the following diagram:
![extension](test_cases/t00036_class.svg)
## Class context diagram
Sometimes it's helpful to generate a class diagram depicting only direct relationships of a given class, e.g.
within the classes' documentation page, this can be easily achieved using `context` inclusion filter:
```yaml
include:
context:
- ns1::MyClass
```
## Disabling dependency relationships
In many cases, dependency relationships between classes can clutter the diagram too much, for instance consider this
diagram:
![extension](test_cases/t00019_class.svg)
where the dependency relationships do not bring much information into the diagram. In such cases it might
be useful to disable dependency relationships for this diagram completely using the following exclusion filter:
```yaml
exclude:
relationships:
- dependency
```
Dependency relationships are inferred whenever a class uses another class, thus often dependency relationship
will be rendered in addition to other relationships such as association or inheritance. In the future there might
be an option to remove the redundant dependency relationships from the diagram automatically.

231
docs/comment_decorators.md Normal file
View File

@@ -0,0 +1,231 @@
# Comment decorators
<!-- toc -->
* [`note`](#note)
* [`skip` and `skiprelationship`](#skip-and-skiprelationship)
* [`composition`, `association` and `aggregation`](#composition-association-and-aggregation)
* [`style`](#style)
<!-- tocstop -->
`clang-uml` provides a set of in-comment directives, called decorators, which allow custom control over
generation of UML diagrams from C++ and overriding default inference rules for relationships.
`clang-uml` decorators are specified in the following format:
```
\uml{<decorator>[:<diagram_name>][<options>] <text>}
```
or
```
@uml{<decorator>[:<diagram_name>][<options>] <text>}
```
The optional `:<diagram_name>` suffix will apply this decorator only to a specific diagram.
Currently, the following decorators are supported.
## `note`
This decorator allows to specify directly in the code comments that should be included in the generated diagrams.
The following code:
```cpp
/// \uml{note[top] A class note.}
class A {
};
/// \uml{note[] B class note.}
class B {
};
///
/// @uml{note:t00028_class[bottom] C class note.}
/// This is class C.
class C {
};
/// \uml{note
/// D
/// class
/// note.}
class D {
};
/// \uml{note E template class note.}
template <typename T> class E {
T param;
};
/// \uml{note:other_diagram[left] G class note.}
class G {
};
/// @uml{note[ bottom ] F enum note.}
enum class F { one, two, three };
/// \uml{note[right] R class note.}
class R {
explicit R(C &c)
: ccc(c)
{
}
A aaa;
B *bbb;
C &ccc;
std::vector<std::shared_ptr<D>> ddd;
E<int> eee;
G **ggg;
};
```
generates the following class diagram:
![note](./test_cases/t00028_class.svg)
## `skip` and `skiprelationship`
This decorator allows to skip the specific classes or methods from the diagrams, for instance the following code:
```cpp
class A {
};
/// \uml{skip}
class B {
};
template <typename T> class C {
T param;
};
/// @uml{skip:t00029_class}
template <typename T> class D {
T param;
};
enum class E { one, two, three };
/// \uml{skip}
enum class F { red, green, blue };
class G1 {
};
class G2 {
};
class G3 {
};
class G4 {
};
struct R {
G1 g1;
/// \uml{skip}
G2 g2;
/// \uml{skiprelationship}
G3 &g3;
std::shared_ptr<G4> g4;
};
```
generates the following diagram:
![skip](./test_cases/t00029_class.svg)
## `composition`, `association` and `aggregation`
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:
```cpp
class A {
};
class B {
};
class C {
};
class D {
};
class E {
};
struct R {
/// @uml{association[]}
A aaa;
/// @uml{composition[0..1:1..*]}
std::vector<B> bbb;
/// @uml{aggregation[0..1:1..5]}
std::vector<C> ccc;
/// @uml{association[:1]}
D ddd;
/// @uml{aggregation[:1]}
E *eee;
};
```
generates the following diagram:
![skip](./test_cases/t00030_class.svg)
## `style`
This decorator allows to specify in the code specific styles for diagram elements, for instance:
```cpp
/// @uml{style[#back:lightgreen|yellow;header:blue/red]}
class A {
};
/// @uml{style[#line.dotted:blue]}
enum B { one, two, three };
/// @uml{style[#pink;line:red;line.bold;text:red]}
template <typename T> class C {
T ttt;
};
class D {
};
struct R {
/// @uml{style[#red,dashed,thickness=2]}
A *aaa;
/// @uml{composition}
/// @uml{style[#green,dashed,thickness=4]}
std::vector<B> bbb;
/// @uml{style[#blue,dotted,thickness=8]}
C<int> ccc;
/// @uml{style[#blue,plain,thickness=16]}
D *ddd;
};
```
generates the following diagram:
![skip](./test_cases/t00031_class.svg)

88
docs/common_options.md Normal file
View File

@@ -0,0 +1,88 @@
# Common diagram generation options
<!-- toc -->
* [Overall configuration file structure](#overall-configuration-file-structure)
* [Translation unit glob patterns](#translation-unit-glob-patterns)
* [PlantUML custom directives](#plantuml-custom-directives)
* [Adding debug information in the generated diagrams](#adding-debug-information-in-the-generated-diagrams)
<!-- tocstop -->
## Overall configuration file structure
By default, `clang-uml` will look for file `.clang-uml` in the projects directory and read all diagrams definitions
from it. The file must be specified in YAML and it's overall structure is as follows:
```yaml
<common options for all diagrams>
diagrams:
<first diagram name>:
type: [class|sequence|package|include]
<diagram specific options>
<second diagram name>:
type: [class|sequence|package|include]
<diagram specific options>
...
```
The top level common options are inherited by specific diagrams, if the option is applicable to them and they themselves
do not override this option.
For detailed reference of all configuration options see [here](./configuration_file.md).
Effective configuration, including default values can be printed out in YAML format using the following option:
```bash
clang-uml --dump-config
```
## Translation unit glob patterns
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.
The syntax is simple and based on glob patterns, which can be added to the configuration file as follows:
```yaml
glob:
- src/dir1/*.cc
- src/dir3/*.cc
```
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`
pattern set does not much 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
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.
## PlantUML custom directives
In case it's necessary to add some custom PlantUML declarations before or after the generated diagram content,
it can be achieved simply using the `plantuml` configuration properties, for instance:
```yaml
plantuml:
before:
- left to right direction
after:
- 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 style.
Please note that when referring to diagram elements in the PlantUML directives, they must be added using Jinja
templates `alias` command as in the example above.
More options can be found in the official PlantUML [documentation](https://plantuml.com/).
## 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,
from which given declaration or call expression was derived. By adding option:
```yaml
debug_mode: true
```
the generated PlantUML diagram will contain comments before each line containing the source location of the
specific diagram element.

View File

@@ -1,10 +1,21 @@
# Configuration file reference
<!-- toc -->
* [Top level options](#top-level-options)
* [Diagram options](#diagram-options)
* [Example complete config](#example-complete-config)
* [Determining config file location](#determining-config-file-location)
* [Paths](#paths)
<!-- tocstop -->
## Top level options
* `compilation_database_dir` - path to the directory containing `compile_commands.json`
* `output_directory` - path to the directory where PlantUML diagrams will be generated
* `diagrams` - the map of diagrams to be generated, each diagram name is provided as
the key of the diagram YAML node
* `debug_mode` - add inline debug information in the generated diagrams
### Diagram options
* `type` - type of diagram, one of [`class`, `sequence`, `package`, `include`]
@@ -22,7 +33,7 @@
* `dependants` - include all classes, which depend on the specified class
* `dependencies` - include all classes, which are dependencies of the specified class
* `context` - include only entities in direct relationship with specified classes
* `exclude` - definition of excqlusion patterns:
* `exclude` - definition of exclusion patterns:
* `namespaces` - list of namespaces to exclude
* `relationships` - list of relationships to exclude
* `elements` - list of elements, i.e. specific classes, enums, templates to exclude
@@ -37,27 +48,14 @@
* `before` - list of directives which will be added before the generated diagram
* `after` - list of directives which will be added after the generated diagram
### Template engine
`clang-uml` integrates [inja](https://github.com/pantor/inja) template engine, with several
additional functions which can be used in textual directives within the configuration files,
notes and to generate links and tooltips to diagrams.
The following, are the `clang-uml` additional template functions:
* `ltrim(string)` - left trims a string
* `rtrim(string)` - right trims a string
* `trim(string)` - trims a string
* `substr(string, offset, length)` - returns a substring of a string from offset of length
* `split(string)` - splits a string and returns a list of strings
* `replace(string, regex, replacement)` - returns a string with replace matches to regex with replacement string
* `abbrv(string, length)` - returns a string truncated to length including trailing ellipsis
* `alias(string)` - returns a PlantUML alias of an C++ entity represented by string name
## Example complete config
```yaml
# Directory containing the compile_commands.json file
compilation_database_dir: debug
# Inject additional compile commands to the compilation database entries
add_compile_flags:
- '-Wno-vla-extension'
# The directory where *.puml files will be generated
output_directory: docs/diagrams
# Set this as default for all diagrams
@@ -101,6 +99,11 @@ diagrams:
ClassA:
- up: ClassB
- left: ClassC
ClassD:
- together: [ClassE, ClassF, EnumG]
ClassX:
- row: [ClassY1, ClassZ1]
- column: [ClassY2, ClassZ2]
# Specify customized relationship hints for types which are
# arguments in template instantiations
relationship_hints:
@@ -120,4 +123,32 @@ diagrams:
# Add this line to the beginning of the resulting puml file
before:
- 'title clang-uml class diagram model'
```
```
## Determining config file location
If `-c,--config` option is not provided, `clang-uml` will try to open file
`.clang-uml` in the current directory and fail if it doesn't exist.
With `-c,--config` option pointing to a valid `.clang-uml` file path, the file
configuration will be loaded from that file.
Furthermore, when the value of `-c,--config` option is `-` - the entire config
will be read from `stdin`, which can be useful for scripting and generating
config Yaml documents on the fly.
## Paths
By default, all paths specified in the configuration file, including:
* `glob`
* `output_directory`
* `compilation_database_dir`
* `paths` filter
are relative to the parent directory of the configuration file. This can be
changed in the following ways:
* by specifying `relative_to` option in the configuration file
* by providing `--paths-relative-to-pwd` command line option, in which
case all paths will be relative to the directory where `clang-uml` is
executed (this only makes sense for automation where `clang-uml` is executed
from the same location relative to the project directory

178
docs/diagram_filters.md Normal file
View File

@@ -0,0 +1,178 @@
# Diagram filters
<!-- toc -->
* [`namespaces`](#namespaces)
* [`elements`](#elements)
* [`context`](#context)
* [`relationships`](#relationships)
* [`subclasses`](#subclasses)
* [`parents`](#parents)
* [`specializations`](#specializations)
* [`dependants` and `dependencies`](#dependants-and-dependencies)
<!-- tocstop -->
Diagram filters are at the core of generating diagrams with `clang-uml`, as they allow to fine tune the scope
of each diagram, and thus provide you with a several small, but readable diagrams instead of a single huge diagram
that cannot be effectively browsed, printed or included in an online documentation of your project.
Filters can be specified separate for each diagram, and they can be added as either `include` or `exclude` filters,
depending on which is more appropriate for a given diagram.
For instance to include only C++ entities from a namespace `ns1::ns2` but not `ns1::ns2::detail` add the following
to your diagram configuration:
```yaml
include:
namespaces:
- ns1::ns2
exclude:
namespaces:
- ns1::ns2::detail
```
The following filters are available.
## `namespaces`
Allows to include or exclude entities from specific namespaces.
## `elements`
Allows to directly include or exclude specific entities from the diagrams, for instance to exclude a specific class
from an included namespace:
```yaml
include:
namespaces:
- ns1::ns2
exclude:
elements:
- ns1::ns2::MyClass
```
## `context`
This filter allows to limit the diagram elements only to classes which are in direct relationship (of any kind) with
the specified class:
```yaml
include:
context:
- ns1::ns2::MyClass
```
## `relationships`
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:
```yaml
include:
relationships:
- inheritance
- instantiation
```
The following relationships can be used in this filter:
* inheritance
* composition
* aggregation
* ownership
* association
* instantiation
* friendship
* dependency
## `subclasses`
This filter allows to include or exclude all subclasses of a given class in the diagram.
## `parents`
This filter allows to include or exclude all parents (base classes) of a given class in the diagram.
## `specializations`
This filter allows to include or exclude specializations and instantiations of a specific template from the diagram.
## `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.
For instance the following code:
```cpp
namespace dependants {
struct A {
};
struct B {
void b(A *a) { }
};
struct BB {
void bb(A *a) { }
};
struct C {
void c(B *b) { }
};
struct D {
void d(C *c) { }
void dd(BB *bb) { }
};
struct E {
void e(D *d) { }
};
struct F {
};
} // namespace dependants
namespace dependencies {
struct G {
};
struct GG {
};
struct H {
void h(G *g) { }
void hh(GG *gg) { }
};
struct HH {
void hh(G *g) { }
};
struct I {
void i(H *h) { }
};
struct J {
void i(I *i) { }
};
```
and the following filter:
```yaml
include:
dependants:
- clanguml::t00043::dependants::A
dependencies:
- clanguml::t00043::dependencies::J
relationships:
- dependency
```
generates the following diagram:
![t00043_class](./test_cases/t00043_class.svg)

97
docs/diagram_templates.md Normal file
View File

@@ -0,0 +1,97 @@
# Diagram templates
<!-- toc -->
* [Diagram template syntax](#diagram-template-syntax)
* [Adding templates to the configuration file](#adding-templates-to-the-configuration-file)
* [Adding diagram to configuration from a template](#adding-diagram-to-configuration-from-a-template)
* [Builtin templates](#builtin-templates)
<!-- tocstop -->
When working with large codebases, it is often necessary to create diagram
configurations for a large number of classes or groups of classes.
Diagram templates feature makes this easier, by allowing to define (or use
one of the builtin) templates and generate using them any number of diagram
configurations. Diagram templates can be defined using Jinja like template
syntax (current renderer implementation is
[inja](https://github.com/pantor/inja)).
## Diagram template syntax
Diagram templates are defined as part of the configuration file using the
following YAML node:
```yaml
diagram_templates:
# Name of the template
parents_hierarchy_tmpl:
# Description of the template
description: Generate class parents inheritance diagram
# Diagram type
type: class
# Template definition - it has to be valid YAML after it is rendered
template: |
{{ diagram_name }}:
type: class
{% if exists("glob") %}
glob: [{{ glob }}]
{% endif %}
{% if exists("using_namespace") %}
using_namespace: {{ using_namespace }}
{% endif %}
include:
parents: [{{ class_name }}]
namespaces: [{{ namespace_names }}]
relationships:
- inheritance
exclude:
access: [public, protected, private]
plantuml:
before:
- left to right direction
```
## Adding templates to the 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
to keep diagram template definitions in a separate Yaml file, and reference
it in the configuration file using `include!` directive, e.g.:
```yaml
diagram_templates:
include!: .clang-uml-templates
```
## Adding diagram to configuration from a template
To add a new diagram definition to the configuration file based on the template,
simply call the `clang-uml` using the following options:
```bash
clang-uml --add-diagram-from-template parents_hierarchy_tmpl \
--template-var class_name=clanguml::config::include_diagram \
--template-var namespace_names=clanguml \
--template-var diagram_name=abcd \
--template-var "glob=src/config/*.cc" \
--template-var using_namespace=clanguml::config
```
To see what variables are necessary to provide for a template, the template
can be printed from the command line using the following command:
```bash
clang-uml --show-template parents_hierarchy_tmpl
```
## Builtin templates
`clang-uml` has some predefined templates, which can be used directly. If the
users configuration file defines another template with a name which already
exists as built-in template it will override the predefined templates.
Currently the following templates are built-in:
* `parents_hierarchy_tmpl` - generate inheritance hierarchy diagram including
parents of a specified class
* `subclass_hierarchy_tmpl` - generate inheritance hierarchy diagram including
c children of a specified class
* `class_context_tmpl` - generate diagram including all classes in direct
relationship (of any kind) with a specific class

View File

@@ -0,0 +1,20 @@
# Doxygen integration
<!-- toc -->
<!-- tocstop -->
`clang-uml` diagrams can be easily added to the Doxygen documentation using the image tag, however
[Doxygen](https://www.doxygen.nl/index.html) does not support the `clang-uml` specific commands.
`clang-uml` decorators can be omitted completely in Doxygen, by adding the
following lines to the Doxygen config file:
```
ALIASES += uml=""
ALIASES += uml{1}=""
ALIASES += uml{2}=""
ALIASES += uml{3}=""
```

22
docs/generator_types.md Normal file
View File

@@ -0,0 +1,22 @@
# Generator types
<!-- toc -->
* [PlantUML](#plantuml)
* [JSON](#json)
<!-- tocstop -->
Currently, there are 2 types of diagram generators: `plantuml` and `json`.
## PlantUML
Generates UML diagrams in textual PlantUML format, which can then
be converted to various image formats.
## JSON
Generates a JSON representation of the intermediate `clang-uml` model, which
can be used for scripting, integrations as well as analysing the code base
or even generating diagrams in other formats.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

64
docs/include_diagrams.md Normal file
View File

@@ -0,0 +1,64 @@
# Generating include diagrams
<!-- toc -->
* [Tracking system headers directly included by projects files](#tracking-system-headers-directly-included-by-projects-files)
<!-- tocstop -->
Include diagrams allow to document the include dependencies among different parts of the project. This can be very useful
for instance to detect that a file was included from a module directory, on which specific part of the project
should not ever depend.
The minimal config required to generate an include diagram is presented below:
```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:
# Diagram name
my_class_diagram:
# Type of diagram (has to be `include`)
type: include
# Include only translation units matching the following patterns
glob:
- src/*.cc
# Render the paths relative to this directory
relative_to: src
# Include also external system headers
generate_system_headers: true
# Include only classes and functions from files in `src` directory
include:
# Include only files belonging to these paths
paths:
- src
```
One distinctive option in `include` diagrams is `relative_to`, which tells `clang-uml` to render all filename
paths relative to this directory.
The following table presents the PlantUML arrows representing relationships in the include diagrams.
| UML | PlantUML |
| ---- | --- |
| Include (local) | ![association](img/puml_association.png) |
| Include (system) | ![dependency](img/puml_dependency.png) |
## Tracking system headers directly included by projects files
In case you would like to include the information about what system headers your projects file include simply add
the following option to the diagram:
```yaml
generate_system_headers: true
```
This will include only system headers directly included from the projects source files (matched by `glob`) and not
their dependencies, for example:
![t40001_include](./test_cases/t40001_include.svg)
Please note that generating include diagram, which contains third party and system library headers will result
in a huge diagram that will be unlikely to be useful.

168
docs/installation.md Normal file
View File

@@ -0,0 +1,168 @@
# Installation
<!-- toc -->
* [Distribution packages](#distribution-packages)
* [Ubuntu](#ubuntu)
* [Fedora](#fedora)
* [Conda](#conda)
* [Windows](#windows)
* [Building from source](#building-from-source)
* [Linux](#linux)
* [macos](#macos)
* [Windows](#windows-1)
* [Visual Studio native build](#visual-studio-native-build)
<!-- tocstop -->
### Distribution packages
#### Ubuntu
```bash
# Currently supported Ubuntu versions are Focal, Jammy and Kinetic
sudo add-apt-repository ppa:bkryza/clang-uml
sudo apt update
sudo apt install clang-uml
```
#### Fedora
```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
wget https://github.com/bkryza/clang-uml/releases/download/0.3.1/clang-uml-0.3.1-1.fc37.x86_64.rpm
sudo dnf install ./clang-uml-0.3.1-1.fc37.x86_64.rpm
```
#### Conda
```bash
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install -c bkryza/label/clang-uml clang-uml
```
#### Windows
Download and run the latest Windows installer from
[Releases page](https://github.com/bkryza/clang-uml/releases).
### Building from source
#### Linux
First make sure that you have the following dependencies installed:
```bash
# Ubuntu (clang version will vary depending on Ubuntu version)
apt install ccache cmake libyaml-cpp-dev clang-12 libclang-12-dev libclang-cpp12-dev
```
Then proceed with building the sources:
```bash
git clone https://github.com/bkryza/clang-uml
cd clang-uml
# Please note that top level Makefile is just a convenience wrapper for CMake
make release
release/src/clang-uml --help
# To build using a specific installed version of LLVM use:
LLVM_VERSION=14 make release
# Optionally
make install
# or
export PATH=$PATH:$PWD/release
```
#### macos
```bash
brew install ccache cmake llvm yaml-cpp
export CC=/usr/local/opt/llvm/bin/clang
export CCX=/usr/local/opt/llvm/bin/clang++
LLVM_VERSION=14 make release
```
#### Windows
##### Visual Studio native build
These steps present how to build and use `clang-uml` natively using Visual Studio only.
First, install the following dependencies manually:
* [Python 3](https://www.python.org/downloads/windows/)
* [Git](https://git-scm.com/download/win)
* [CMake](https://cmake.org/download/)
* [Visual Studio](https://visualstudio.microsoft.com/vs/community/)
> All the following steps should be invoked in `Developer PowerShell for VS`.
Create installation directory for `clang-uml` and its dependencies:
```bash
# This is where clang-uml binary and its dependencies will be installed after build
# If you change this path, adapt all consecutive steps
mkdir C:\clang-uml
# This directory will be removed after build
mkdir C:\clang-uml-tmp
cd C:\clang-uml-tmp
```
Build and install `yaml-cpp`:
```bash
git clone https://github.com/jbeder/yaml-cpp
cd yaml-cpp
git checkout yaml-cpp-0.7.0
cd ..
cmake -S .\yaml-cpp\ -B .\yaml-cpp-build\ -DCMAKE_INSTALL_PREFIX="C:\clang-uml" -Thost=x64
cd yaml-cpp-build
msbuild .\INSTALL.vcxproj -maxcpucount /p:Configuration=Release
```
Build and install `LLVM`:
```bash
pip install psutil
# Update the LLVM branch if necessary
git clone --branch llvmorg-15.0.6 --depth 1 https://github.com/llvm/llvm-project.git llvm
cmake -S .\llvm\llvm -B llvm-build -DLLVM_ENABLE_PROJECTS=clang -DCMAKE_INSTALL_PREFIX="C:\clang-uml" -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=X86 -Thost=x64
cd llvm-build
msbuild .\INSTALL.vcxproj -maxcpucount /p:Configuration=Release
```
Build and install `clang-uml`:
```bash
git clone https://github.com/bkryza/clang-uml
cmake -S .\clang-uml\ -B .\clang-uml-build\ -DCMAKE_INSTALL_PREFIX="C:\clang-uml" -DCMAKE_PREFIX_PATH="C:\clang-uml" -DBUILD_TESTS=OFF -Thost=x64
cd clang-uml-build
msbuild .\INSTALL.vcxproj -maxcpucount /p:Configuration=Release
```
Check if `clang-uml` works:
```bash
cd C:\clang-uml
bin\clang-uml.exe --version
```
It should produce something like:
```bash
clang-uml 0.3.1
Copyright (C) 2021-2023 Bartek Kryza <bkryza@gmail.com>
Built against LLVM/Clang libraries version: 15.0.6
Using LLVM/Clang libraries version: clang version 15.0.6 (https://github.com/llvm/llvm-project.git 088f33605d8a61ff519c580a71b1dd57d16a03f8)
```
Finally, remove the temporary build directory:
```bash
rm -r C:\clang-uml-tmp
```

View File

@@ -0,0 +1,21 @@
# Interactive SVG diagrams
<!-- toc -->
<!-- tocstop -->
`clang-uml` in combination with PlantUML's link generation in diagrams allows to generate interactive diagrams,
where clicking on any class, 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 of diagram elements simple add this to your
`.clang-uml` file:
```yaml
generate_links:
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 %}'
```
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.

120
docs/jinja_templates.md Normal file
View File

@@ -0,0 +1,120 @@
# Template engine
<!-- toc -->
* [Accessing comment content](#accessing-comment-content)
* [`plain` comment parser](#plain-comment-parser)
* [`clang` comment parser](#clang-comment-parser)
<!-- tocstop -->
`clang-uml` integrates [inja](https://github.com/pantor/inja) template engine, with several
additional functions which can be used in textual directives within the configuration files,
notes and to generate links and tooltips in diagrams.
The following, are the `clang-uml` additional template functions:
* `ltrim(string)` - left trims a string
* `rtrim(string)` - right trims a string
* `trim(string)` - trims a string
* `substr(string, offset, length)` - returns a substring of a string from offset of length
* `split(string)` - splits a string and returns a list of strings
* `replace(string, regex, replacement)` - returns a string with replace matches to regex with replacement string
* `abbrv(string, length)` - returns a string truncated to length including trailing ellipsis
* `element(string)` - returns the entire JSON context a given diagram element, including the following properties:
* `name` - name of the element
* `type` - type of diagram element (e.g. `class`, `enum`, `package`)
* `namespace` - fully qualified element namespace
* `full_name` - fully qualified element name
* `comment` [optional] - elements comment, if any
* `alias` - internal diagram element alias (e.g. PlantUML alias)
* `alias(string)` - returns a PlantUML alias of an C++ entity represented by string name
* `comment(string)` - returns a comment of an C++ entity represented by string name
Templates allow complex postprocessing of the diagrams, for instance creation of customized PlantUML
notes in the diagrams from comments in the code. Below is an example of using the above commands to
generate notes in the PlantUML diagram from code comments (see also test case [t00050](./test_cases/t00050.md)):
```yaml
plantuml:
after:
# Add a note left of the `A` class with the entire clas comment as content
- >
note left of {{ alias("A") }}
{{ comment("clanguml::t00050::A").formatted }}
end note
# Same as above
- >
note right of {{ element("clanguml::t00050::A").alias }}
{% set e=element("clanguml::t00050::A") %} {{ e.comment.formatted }}
end note
# Add a note left of class 'C' using trimmed text content from the class comment
- >
note left of {{ alias("C") }} #AABBCC
{{ trim(comment("clanguml::t00050::C").text) }}
end note
# For each element in the diagram (class, template, enum):
# - Add a note with \brief comment if exists
# - Add a note with \todo for each element which has it
# - Add a note with template parameter descriptions based on \tparam comment
- >
{# Render brief comments and todos, if any were written for an element #}
{% for e in diagram.elements %}
{% if existsIn(e, "comment") and existsIn(e.comment, "brief") %}
note top of {{ e.alias }} {% if e.type == "class" %} #22AA22 {% else %} #2222AA {% endif %}
{% set c=e.comment %} {{ c.brief.0 }}
end note
{% endif %}
{% if existsIn(e, "comment") and existsIn(e.comment, "todo") %}
{% set c=e.comment %}
{% for t in c.todo %}
note top of {{ e.alias }} #882222
**TODO**
{{ t }}
end note
{% endfor %}
{% endif %}
{# Render template paramete if any #}
{% if existsIn(e, "comment") and existsIn(e.comment, "tparam") %}
{% set c=e.comment %}
note top of {{ e.alias }} #AAAAFF
**Template parameters**
{% for tp in c.tparam %}
//{{ tp.name }}// {{ trim(tp.description) }}
{% endfor %}
end note
{% endif %}
{% endfor %}
```
### Accessing comment content
Text available in the code comment blocks can be accessed in the templates depending on the selected comment
parser.
Currently there are 2 available comment parsers:
* `plain` - default
* `clang` - Clang's comment parser
They can be selected using `comment_parser` config option.
#### `plain` comment parser
This parser provides only 2 options to the Jinja context:
* `comment.raw` - raw comment text, including comment markers such as `///` or `/**`
* `comment.formatted` - formatted entire comment
#### `clang` comment parser
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.formatted` - formatted entire comment
* `comment.<command>.<N>` - where command is the command used in the command e.g. `brief`, `todo`, etc.
and `N` is the index of the command in the array (each comment can have multiple instances of the
same command such as `\todo`)
* `comment.text` - entire text of the comment that is not attached to any command
* `comment.paragraph.<N>` - array of plain text paragraphs, for instance if you don't use `\brief`
commands but often provide brief description as first sentence of the comment separated with a new line
from the rest of the comment

157
docs/package_diagrams.md Normal file
View File

@@ -0,0 +1,157 @@
# Generating package diagrams
<!-- toc -->
<!-- tocstop -->
Package diagrams are simple diagrams which can be useful to determine the high level structure of a C++ project,
by rendering all projects namespaces as UML packages and their interdependencies.
The minimal config required to generate a package diagram is presented below:
```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:
# Diagram name
my_class_diagram:
# Type of diagram (has to be `package`)
type: package
# Include only translation units matching the following patterns
glob:
- src/*.cc
# Include only classes and functions from files in `src` directory
include:
namespaces:
- ns1::ns2
```
For instance the following C++ code:
```
namespace A::AA {
namespace A1 {
struct CA {
};
}
namespace A2 {
struct CB {
};
}
namespace A3 {
struct CC {
};
}
namespace A4 {
struct CD {
};
}
namespace A5 {
struct CE {
};
}
namespace A6 {
struct CF {
};
}
namespace A7 {
struct CG {
};
}
namespace A8 {
struct CH {
};
}
namespace A9 {
struct CI {
};
}
namespace A10 {
struct CJ {
};
}
namespace A11 {
struct CK {
};
}
namespace A12 {
struct CL {
};
}
namespace A13 {
struct CM {
};
}
namespace A14 {
struct CN {
};
}
namespace A15 {
struct CO {
};
}
namespace A16 {
struct CP {
};
}
namespace A17 {
struct CR {
};
}
}
namespace B::BB::BBB {
class CBA : public A::AA::A6::CF {
public:
A::AA::A1::CA *ca_;
A::AA::A2::CB cb_;
std::shared_ptr<A::AA::A3::CC> cc_;
std::map<std::string, std::unique_ptr<A::AA::A4::CD>> *cd_;
std::array<A::AA::A15::CO, 5> co_;
static A::AA::A16::CP *cp_;
CBA() = default;
CBA(A::AA::A14::CN *cn) { }
friend A::AA::A17::CR;
template <typename... Item> CBA(std::tuple<Item...> &items) { }
void ce(const std::vector<A::AA::A5::CE> /*ce_*/) { }
std::shared_ptr<A::AA::A7::CG> cg() { return {}; }
template <typename T>
void ch(std::map<T, std::shared_ptr<A::AA::A8::CH>> &ch_)
{
}
template <typename T>
std::map<T, std::shared_ptr<A::AA::A9::CI>> ci(T * /*t*/)
{
return {};
}
};
void cj(std::unique_ptr<A::AA::A10::CJ> /*cj_*/) { }
std::unique_ptr<A::AA::A11::CK> ck() { return {}; }
template <typename T>
void cl(std::map<T, std::shared_ptr<A::AA::A12::CL>> & /*ch_*/)
{
}
template <typename T> std::map<T, std::shared_ptr<A::AA::A13::CM>> cm()
{
return {};
}
}
```
generates the following diagram:
![package_deps](./test_cases/t30002_package.svg)

62
docs/quick_start.md Normal file
View File

@@ -0,0 +1,62 @@
# Quick start
<!-- toc -->
<!-- tocstop -->
To add an initial class diagram to your project, follow these steps:
1. Enter your projects top level directory and run:
```bash
$ clang-uml --init
```
2. Edit the generated `.clang-uml` file and set the following:
```yaml
# Path to `compile_commands.json` directory
compilation_database_dir: .
# Path to diagram output directory
output_directory: puml
diagrams:
# This is the name of the diagram
some_class_diagram:
type: class
# Parse only translation units in `src` subdirectory
glob:
- src/*.cc
# Render all names relative to `myproject` namespace
using_namespace:
- myproject
include:
# Include only elements in `myproject` namespace
namespaces:
- myproject
exclude:
# Exclude elements in `myproject::detail` namespace
namespaces:
- myproject::detail
```
3. Run `clang-uml` in the projects top directory:
```bash
$ clang-uml
```
4. Generate SVG images from the PlantUML diagrams:
```bash
$ plantuml -tsvg puml/*.puml
```
5. Add another diagram:
```bash
$ clang-uml --add-sequence-diagram another_diagram
```
6. Now list the diagrams defined in the config:
```bash
$ clang-uml -l
The following diagrams are defined in the config file:
- another_diagram [sequence]
- some_class_diagram [class]
```
7. Generate only the new diagram in JSON format:
```bash
clang-uml -n another_diagram -g json
```

246
docs/sequence_diagrams.md Normal file
View File

@@ -0,0 +1,246 @@
# Generating sequence diagrams
<!-- toc -->
* [Sequence diagram overview](#sequence-diagram-overview)
* [Specifying diagram entry point](#specifying-diagram-entry-point)
* [Grouping free functions by file](#grouping-free-functions-by-file)
* [Lambda expressions in sequence diagrams](#lambda-expressions-in-sequence-diagrams)
* [Customizing participants order](#customizing-participants-order)
<!-- tocstop -->
The minimal config required to generate a sequence diagram is presented below:
```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:
# Diagram name
my_class_diagram:
# Type of diagram (has to be `sequence`)
type: sequence
# Include only translation units matching the following patterns
glob:
- src/*.cc
# Include only classes and functions from files in `src` directory
include:
paths:
- src
# Exclude calls to/from `std` namespace
exclude:
namespaces:
- std
start_from:
- function: "main(int,const char**)"
```
## Sequence diagram overview
Consider the following diagram:
![extension](test_cases/t20029_sequence.svg)
`clang-uml` generated sequence diagrams are not strictly speaking conforming to the UML specification. In order to
make them more useful for documenting modern C++ code, the following assumptions were made:
* Free functions are included in the sequence diagrams as standalone participants (in fact `clang-uml` can be used
to generate sequence diagrams from plain old C code). Functions can also be aggregated into file participants,
based on their place of declaration
* Call expressions in conditional expressions in block statements (e.g. `if` or `while`) are rendered inside the
PlantUML `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 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
start_from:
- function: "main(int,char**)"
```
or
```yaml
start_from:
- 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
method in the `clang-uml` model, which can be frustrating after few attempts.
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
for the relevant function signature. At the end of the diagram generation at this verbosity level, `clang-uml` will
generate a textual representation of all discovered activities relevant for this diagram, for instance if you're looking
_for exact signature of method `translation_unit_visitor::VisitCXXRecordDecl`, look for similar_
output in the logs:
```bash
[trace] [tid 3842954] [diagram.cc:194] Sequence id=1875210076312968845:
[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`.
## 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
to a very large number of participants in the diagram. If it's an issue, an option can be provided in the diagram
definition:
```yaml
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:
![extension](test_cases/t20017_sequence.svg)
## Lambda expressions in sequence diagrams
Lambda expressions in sequence diagrams are... tricky. There is currently 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
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
(e.g. used in `std::transform` call) the call will be generated at the point where lambda is passed as parameter
* If the lambda is passed as template parameter in instantiation it will not be generated at the moment at all
Another issue is the naming of lambda participants. Currently, each lambda is 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:
```cpp
#include <algorithm>
#include <functional>
#include <memory>
#include <optional>
#include <utility>
namespace clanguml {
namespace t20012 {
struct A {
void a() { aa(); }
void aa() { aaa(); }
void aaa() { }
};
struct B {
void b() { bb(); }
void bb() { bbb(); }
void bbb() { }
void eb() { }
};
struct C {
void c() { cc(); }
void cc() { ccc(); }
void ccc() { }
};
struct D {
int add5(int arg) const { return arg + 5; }
};
class E {
std::optional<std::shared_ptr<B>> maybe_b;
std::shared_ptr<A> a;
public:
template <typename F> void setup(F &&f) { f(maybe_b); }
};
template <typename F> struct R {
R(F &&f)
: f_{std::move(f)}
{
}
void r() { f_(); }
F f_;
};
void tmain()
{
A a;
B b;
C c;
// The activity shouldn't be marked at the lambda definition, but
// wherever it is actually called...
auto alambda = [&a, &b]() {
a.a();
b.b();
};
// ...like here
alambda();
// There should be no call to B in the sequence diagram as the blambda
// is never called
[[maybe_unused]] auto blambda = [&b]() { b.b(); };
// Nested lambdas should also work
auto clambda = [alambda, &c]() {
c.c();
alambda();
};
clambda();
R r{[&c]() { c.c(); }};
r.r();
D d;
std::vector<int> ints{0, 1, 2, 3, 4};
std::transform(ints.begin(), ints.end(), ints.begin(),
[&d](auto i) { return d.add5(i); });
}
}
}
```
generates the following diagram:
![extension](test_cases/t20012_sequence.svg)
## Customizing participants order
The default participant order in the sequence diagram can be suboptimal in the sense that consecutive calls
can go right, then left, then right again depending on the specific call chain in the code. It is however
possible to override this order in the diagram definition using `participants_order` property,
for instance like this test case:
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
t20029_sequence:
type: sequence
glob:
- ../../tests/t20029/t20029.cc
include:
namespaces:
- clanguml::t20029
exclude:
access:
- private
using_namespace:
- clanguml::t20029
start_from:
- function: clanguml::t20029::tmain()
participants_order:
- clanguml::t20029::tmain()
- clanguml::t20029::Encoder<clanguml::t20029::Retrier<clanguml::t20029::ConnectionPool>>
- clanguml::t20029::Retrier<clanguml::t20029::ConnectionPool>
- clanguml::t20029::ConnectionPool
- clanguml::t20029::encode_b64(std::string &&)
```

View File

@@ -48,9 +48,47 @@
* [t00047](./test_cases/t00047.md) - Test case for recursive variadic template
* [t00048](./test_cases/t00048.md) - Test case for unique entity id with multiple translation units
* [t00049](./test_cases/t00049.md) - Test case configurable type aliases
* [t00050](./test_cases/t00050.md) - Test case for generating notes from comments using jinja templates
* [t00051](./test_cases/t00051.md) - Test case for relative paths in lambda names
* [t00052](./test_cases/t00052.md) - Test case for template methods rendering
* [t00053](./test_cases/t00053.md) - Test case for `together` layout hint in class diagram
* [t00054](./test_cases/t00054.md) - Test case for `together` layout hint in class diagram with rendered namespaces
* [t00055](./test_cases/t00055.md) - Test case for `row` and `column` layout hints
* [t00056](./test_cases/t00056.md) - Basic C++20 concepts test case
* [t00057](./test_cases/t00057.md) - Test case C99/C11 translation units with structs and unions
* [t00058](./test_cases/t00058.md) - Test case for concepts with variadic parameters and type aliases
* [t00059](./test_cases/t00059.md) - Non-virtual abstract factory pattern using concepts test case
* [t00060](./test_cases/t00060.md) - Parents (base classes) diagram filter test case
## Sequence diagrams
* [t20001](./test_cases/t20001.md) - Basic sequence diagram test case
* [t20002](./test_cases/t20002.md) - Free function sequence diagram test case
* [t20003](./test_cases/t20003.md) - Function template sequence diagram test case
* [t20004](./test_cases/t20004.md) - Function template instantiation sequence diagram test case
* [t20005](./test_cases/t20005.md) - Class template basic sequence diagram
* [t20006](./test_cases/t20006.md) - Class template specialization basic sequence diagram
* [t20007](./test_cases/t20007.md) - Class template variadic argument list sequence diagram
* [t20008](./test_cases/t20008.md) - Constexpr if sequence diagram test case
* [t20009](./test_cases/t20009.md) - Smart pointer dereference call expression test case
* [t20010](./test_cases/t20010.md) - Container sequence diagram test case
* [t20011](./test_cases/t20011.md) - Recursive calls sequence diagram test case
* [t20012](./test_cases/t20012.md) - Lambda expression call sequence diagram test case
* [t20013](./test_cases/t20013.md) - Function and method arguments in sequence diagrams test case
* [t20014](./test_cases/t20014.md) - Multiple translation units sequence diagram test case
* [t20015](./test_cases/t20015.md) - Class exclusion by namespace in sequence diagram test case
* [t20016](./test_cases/t20016.md) - Template method specialization sequence diagram test case
* [t20017](./test_cases/t20017.md) - Test case for combine_free_functions_into_file_participants option
* [t20018](./test_cases/t20018.md) - Recursive template sequence diagram test case
* [t20019](./test_cases/t20019.md) - Curiously Recurring Template Pattern sequence diagram test case
* [t20020](./test_cases/t20020.md) - If statement sequence diagram test case
* [t20021](./test_cases/t20021.md) - Loop statements sequence diagram test case
* [t20022](./test_cases/t20022.md) - Forward class declaration sequence diagram test case
* [t20023](./test_cases/t20023.md) - Try/catch statement sequence diagram test case
* [t20024](./test_cases/t20024.md) - Switch statement sequence diagram test case
* [t20025](./test_cases/t20025.md) - Skip decorator sequence diagram test case
* [t20026](./test_cases/t20026.md) - Virtual method call sequence diagram 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
* [t20029](./test_cases/t20029.md) - Combined feature sequence diagram test case
## Package diagrams
* [t30001](./test_cases/t30001.md) - Basic package diagram test case
* [t30002](./test_cases/t30002.md) - Package dependency test case
@@ -60,6 +98,7 @@
* [t30006](./test_cases/t30006.md) - Package split namespace 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
* [t30009](./test_cases/t30009.md) - Together layout hint test
## Include diagrams
* [t40001](./test_cases/t40001.md) - Basic include graph diagram test case
* [t40002](./test_cases/t40002.md) - Cyclic include graph diagram test case

View File

@@ -8,6 +8,7 @@ diagrams:
type: class
glob:
- ../../tests/t00002/t00002.cc
comment_parser: clang
using_namespace:
- clanguml::t00002
include:
@@ -15,11 +16,11 @@ diagrams:
- clanguml::t00002
plantuml:
after:
- 'note left of @A(A) : {{ comment("A") }}'
- 'note top of @A(B) : {{ comment("clanguml::t00002::B") }}'
- '{% set e=element("A") %} note left of {{ e.alias }} : {{ trim(e.comment.brief.0) }}'
- '{% set e=element("clanguml::t00002::B") %} note top of {{ e.alias }} : {{ trim(e.comment.brief.0) }}'
- |
note right of {{ alias("D") }}
{{ comment("D") }}
{{ comment("D").text }}
end note
```
## Source code
@@ -30,7 +31,7 @@ File t00002.cc
namespace clanguml {
namespace t00002 {
/// This is class A
/// \brief This is class A
class A {
public:
/// Abstract foo_a
@@ -39,7 +40,7 @@ public:
virtual void foo_c() = 0;
};
/// This is class B
/// \brief This is class B
class B : public A {
public:
virtual void foo_a() override { }
@@ -109,9 +110,448 @@ private:
/// All the A pointers
std::vector<A *> as;
};
}
}
} // namespace t00002
} // namespace clanguml
```
## Generated UML diagrams
![t00002_class](./t00002_class.svg "Basic class inheritance")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"comment": {
"brief": [
" This is class A\n"
],
"formatted": "\\brief This is class A",
"paragraph": [
" \n"
],
"raw": "/// \\brief This is class A",
"text": "\n \n"
},
"display_name": "clanguml::t00002::A",
"id": "987634239855407298",
"is_abstract": true,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"comment": {
"formatted": "Abstract foo_a",
"paragraph": [
" Abstract foo_a\n"
],
"raw": "/// Abstract foo_a",
"text": "\n Abstract foo_a\n"
},
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": true,
"is_static": false,
"is_virtual": true,
"name": "foo_a",
"parameters": [],
"type": "void"
},
{
"access": "public",
"comment": {
"formatted": "Abstract foo_c",
"paragraph": [
" Abstract foo_c\n"
],
"raw": "/// Abstract foo_c",
"text": "\n Abstract foo_c\n"
},
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": true,
"is_static": false,
"is_virtual": true,
"name": "foo_c",
"parameters": [],
"type": "void"
}
],
"name": "A",
"namespace": "clanguml::t00002",
"source_location": {
"file": "../../tests/t00002/t00002.cc",
"line": 7
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "987634239855407298",
"is_virtual": false,
"name": "clanguml::t00002::A"
}
],
"comment": {
"brief": [
" This is class B\n"
],
"formatted": "\\brief This is class B",
"paragraph": [
" \n"
],
"raw": "/// \\brief This is class B",
"text": "\n \n"
},
"display_name": "clanguml::t00002::B",
"id": "594234458687375950",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "foo_a",
"parameters": [],
"type": "void"
}
],
"name": "B",
"namespace": "clanguml::t00002",
"source_location": {
"file": "../../tests/t00002/t00002.cc",
"line": 16
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "987634239855407298",
"is_virtual": false,
"name": "clanguml::t00002::A"
}
],
"comment": {
"brief": [
" This is class C - class C has a long comment\n"
],
"formatted": "@brief This is class C - class C has a long comment\n\nVivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit,\neuismod libero facilisi aptent elementum felis blandit cursus gravida sociis\nerat ante, eleifend lectus nullam dapibus netus feugiat curae curabitur est\nad.",
"paragraph": [
" \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"
],
"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"
},
"display_name": "clanguml::t00002::C",
"id": "1142499429598587507",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"comment": {
"formatted": "Do nothing unless override is provided",
"paragraph": [
" Do nothing unless override is provided\n"
],
"raw": "/// Do nothing unless override is provided",
"text": "\n Do nothing unless override is provided\n"
},
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "foo_c",
"parameters": [],
"type": "void"
}
],
"name": "C",
"namespace": "clanguml::t00002",
"source_location": {
"file": "../../tests/t00002/t00002.cc",
"line": 27
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "594234458687375950",
"is_virtual": false,
"name": "clanguml::t00002::B"
},
{
"access": "public",
"id": "1142499429598587507",
"is_virtual": false,
"name": "clanguml::t00002::C"
}
],
"comment": {
"formatted": "This is class D\nwhich is a little like B\nand a little like C",
"paragraph": [
" This is class D\n which is a little like B\n and a little like C\n"
],
"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"
},
"display_name": "clanguml::t00002::D",
"id": "60950494980414724",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "private",
"comment": {
"formatted": "All the A pointers",
"paragraph": [
" All the A pointers\n"
],
"raw": "/// All the A pointers",
"text": "\n All the A pointers\n"
},
"is_static": false,
"name": "as",
"source_location": {
"file": "../../tests/t00002/t00002.cc",
"line": 58
},
"type": "std::vector<A *>"
}
],
"methods": [
{
"access": "public",
"comment": {
"formatted": "\n Forward foo_a\n ",
"paragraph": [
" Forward foo_a\n"
],
"raw": "/**\n * Forward foo_a\n */",
"text": "\n Forward foo_a\n"
},
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "foo_a",
"parameters": [],
"type": "void"
},
{
"access": "public",
"comment": {
"formatted": "\n Forward foo_c\n ",
"paragraph": [
" Forward foo_c\n"
],
"raw": "/**\n * Forward foo_c\n */",
"text": "\n Forward foo_c\n"
},
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "foo_c",
"parameters": [],
"type": "void"
}
],
"name": "D",
"namespace": "clanguml::t00002",
"source_location": {
"file": "../../tests/t00002/t00002.cc",
"line": 36
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "594234458687375950",
"is_virtual": true,
"name": "clanguml::t00002::B"
},
{
"access": "public",
"id": "1142499429598587507",
"is_virtual": true,
"name": "clanguml::t00002::C"
}
],
"display_name": "clanguml::t00002::E",
"id": "2237886670308966220",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "private",
"comment": {
"formatted": "All the A pointers",
"paragraph": [
" All the A pointers\n"
],
"raw": "/// All the A pointers",
"text": "\n All the A pointers\n"
},
"is_static": false,
"name": "as",
"source_location": {
"file": "../../tests/t00002/t00002.cc",
"line": 83
},
"type": "std::vector<A *>"
}
],
"methods": [
{
"access": "public",
"comment": {
"formatted": "\n Forward foo_a",
"paragraph": [
" Forward foo_a\n"
],
"raw": "///\n /// Forward foo_a\n ///",
"text": "\n Forward foo_a\n"
},
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "foo_a",
"parameters": [],
"type": "void"
},
{
"access": "public",
"comment": {
"formatted": "\n Forward foo_c",
"paragraph": [
" Forward foo_c\n"
],
"raw": "///\n /// Forward foo_c\n ///",
"text": "\n Forward foo_c\n"
},
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "foo_c",
"parameters": [],
"type": "void"
}
],
"name": "E",
"namespace": "clanguml::t00002",
"source_location": {
"file": "../../tests/t00002/t00002.cc",
"line": 61
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00002_class",
"relationships": [
{
"access": "public",
"destination": "987634239855407298",
"source": "594234458687375950",
"type": "extension"
},
{
"access": "public",
"destination": "987634239855407298",
"source": "1142499429598587507",
"type": "extension"
},
{
"access": "private",
"destination": "987634239855407298",
"label": "as",
"source": "60950494980414724",
"type": "association"
},
{
"access": "public",
"destination": "594234458687375950",
"source": "60950494980414724",
"type": "extension"
},
{
"access": "public",
"destination": "1142499429598587507",
"source": "60950494980414724",
"type": "extension"
},
{
"access": "private",
"destination": "987634239855407298",
"label": "as",
"source": "2237886670308966220",
"type": "association"
},
{
"access": "public",
"destination": "594234458687375950",
"source": "2237886670308966220",
"type": "extension"
},
{
"access": "public",
"destination": "1142499429598587507",
"source": "2237886670308966220",
"type": "extension"
}
],
"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">
<defs>
<filter height="300%" id="f1533eymoe7nkm" width="300%" x="-1" y="-1">
<filter height="300%" id="f195spjhszthn8" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L7" target="_top" title="This is class A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L7" xlink:show="new" xlink:title="This is class A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1533eymoe7nkm)" 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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L7" target="_top" title="This is class A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L7" xlink:show="new" xlink:title="This is class A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f195spjhszthn8)" height="73.6094" id="C_0000987634239855407298" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="294" y="8"/>
<ellipse cx="348.25" cy="24" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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 "/>
<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>
@@ -21,8 +21,8 @@
<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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L16" target="_top" title="This is class B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L16" xlink:show="new" xlink:title="This is class B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1533eymoe7nkm)" height="60.8047" id="C_0000594234458687375950" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="69.5" y="143"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L16" target="_top" title="This is class B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L16" xlink:show="new" xlink:title="This is class B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f195spjhszthn8)" height="60.8047" id="C_0000594234458687375950" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="69.5" y="143"/>
<ellipse cx="111.5" cy="159" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; 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>
@@ -31,8 +31,8 @@
<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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L27" target="_top" title="@brief This is class C - class C has a long comment Vivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit, euismod libero facilisi aptent elementum felis blandit cursus gravida sociis erat ante, eleifend lectus nullam dapibus netus..." xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L27" xlink:show="new" xlink:title="@brief This is class C - class C has a long comment Vivamus integer non suscipit taciti mus etiam at primis tempor sagittis sit, euismod libero facilisi aptent elementum felis blandit cursus gravida sociis erat ante, eleifend lectus nullam dapibus netus..." xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1533eymoe7nkm)" height="60.8047" id="C_0001142499429598587507" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="307" y="143"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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(#f195spjhszthn8)" height="60.8047" id="C_0001142499429598587507" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="307" y="143"/>
<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>
@@ -41,18 +41,18 @@
<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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L36" target="_top" title="This is class D which is a little like B and a little like C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L36" xlink:show="new" xlink:title="This is class D which is a little like B and a little like C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1533eymoe7nkm)" height="86.4141" id="C_0000060950494980414724" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="33.5" y="265"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L36" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L36" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f195spjhszthn8)" height="86.4141" id="C_0000060950494980414724" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="33.5" y="265"/>
<ellipse cx="98.75" cy="281" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; 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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L58" target="_top" title="All the A pointers" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L58" xlink:show="new" xlink:title="All the A pointers" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L58" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L58" xlink:show="new" xlink:title="as" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="39.5" y="303"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="41.5" y="305"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L58" target="_top" title="All the A pointers" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L58" xlink:show="new" xlink:title="All the A pointers" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L58" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L58" xlink:show="new" xlink:title="as" xlink:type="simple">
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="34.5" x2="180.5" y1="317.8047" y2="317.8047"/>
@@ -60,18 +60,18 @@
<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="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/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L61" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L61" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1533eymoe7nkm)" height="86.4141" id="C_0002237886670308966220" style="stroke: #A80036; stroke-width: 1.5;" width="148" x="403.5" y="265"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L61" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L61" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f195spjhszthn8)" 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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L83" target="_top" title="All the A pointers" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L83" xlink:show="new" xlink:title="All the A pointers" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L83" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="303"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="411.5" y="305"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L83" target="_top" title="All the A pointers" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00002/t00002.cc#L83" xlink:show="new" xlink:title="All the A pointers" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00002/t00002.cc#L83" target="_top" title="as" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="311.2104">as : std::vector&lt;A *&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="404.5" x2="550.5" y1="317.8047" y2="317.8047"/>
@@ -79,17 +79,19 @@
<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="414.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="423.5" y="344.8198">foo_c() : void</text>
<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(#f1533eymoe7nkm)" style="stroke: #A80036; stroke-width: 1.0;"/>
<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(#f195spjhszthn8)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M249,32.5 L249,42.5 L259,42.5 L249,32.5 " 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="49.5669">This is class A</text>
<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(#f1533eymoe7nkm)" style="stroke: #A80036; stroke-width: 1.0;"/>
<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(#f195spjhszthn8)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M105,32.5 L105,42.5 L115,42.5 L105,32.5 " 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="49.5669">This is class B</text>
<path d="M217,280.5 L217,304 L181.57,308 L217,312 L217,335.8984 A0,0 0 0 0 217,335.8984 L368,335.8984 A0,0 0 0 0 368,335.8984 L368,290.5 L358,280.5 L217,280.5 A0,0 0 0 0 217,280.5 " fill="#FBFB77" filter="url(#f1533eymoe7nkm)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M358,280.5 L358,290.5 L368,290.5 L358,280.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="223" y="297.5669">This is class D</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="130" x="223" y="312.6997">which is a little like B</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="105" x="223" y="327.8325">and a little like C</text>
<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(#f195spjhszthn8)" style="stroke: #A80036; stroke-width: 1.0;"/>
<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="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="235" y="282.0669"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="89" x="223" y="297.1997">This is class D</text>
<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>
<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>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="227" y="342.5981"/>
<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;"/>
<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;"/>
<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;"/>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -73,9 +73,384 @@ private:
};
int A::static_int = 1;
}
}
} // namespace t00003
} // namespace clanguml
```
## Generated UML diagrams
![t00003_class](./t00003_class.svg "Class field and methods")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00003::A",
"id": "1371951663534295727",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "public_member",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 34
},
"type": "int"
},
{
"access": "protected",
"is_static": false,
"name": "protected_member",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 42
},
"type": "int"
},
{
"access": "protected",
"is_static": false,
"name": "compare",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 44
},
"type": "std::function<bool (const int)>"
},
{
"access": "private",
"is_static": false,
"name": "private_member",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 51
},
"type": "int"
},
{
"access": "private",
"is_static": false,
"name": "a_",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 52
},
"type": "int"
},
{
"access": "private",
"is_static": false,
"name": "b_",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 52
},
"type": "int"
},
{
"access": "private",
"is_static": false,
"name": "c_",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 52
},
"type": "int"
},
{
"access": "public",
"is_static": true,
"name": "static_int",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 35
},
"type": "int"
},
{
"access": "public",
"is_static": true,
"name": "static_const_int",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 36
},
"type": "const int"
},
{
"access": "public",
"is_static": true,
"name": "auto_member",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 37
},
"type": "const unsigned long"
}
],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": true,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "A",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "A",
"parameters": [
{
"name": "i",
"type": "int"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": true,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "A",
"parameters": [
{
"name": "",
"type": "clanguml::t00003::A &&"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": true,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "A",
"parameters": [
{
"name": "",
"type": "const clanguml::t00003::A &"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": true,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "~A",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "basic_method",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": true,
"is_virtual": false,
"name": "static_method",
"parameters": [],
"type": "int"
},
{
"access": "public",
"is_const": true,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "const_method",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "auto_method",
"parameters": [],
"type": "int"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "double_int",
"parameters": [
{
"name": "i",
"type": "const int"
}
],
"type": "int"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "sum",
"parameters": [
{
"name": "a",
"type": "const double"
},
{
"name": "b",
"type": "const double"
}
],
"type": "int"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "default_int",
"parameters": [
{
"default_value": "12",
"name": "i",
"type": "int"
}
],
"type": "int"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "default_string",
"parameters": [
{
"name": "i",
"type": "int"
},
{
"default_value": "\"abc\"",
"name": "s",
"type": "std::string"
}
],
"type": "std::string"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": true,
"is_virtual": false,
"name": "create_from_int",
"parameters": [
{
"name": "i",
"type": "int"
}
],
"type": "clanguml::t00003::A"
},
{
"access": "protected",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "protected_method",
"parameters": [],
"type": "void"
},
{
"access": "private",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "private_method",
"parameters": [],
"type": "void"
}
],
"name": "A",
"namespace": "clanguml::t00003",
"source_location": {
"file": "../../tests/t00003/t00003.cc",
"line": 7
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00003_class",
"relationships": [],
"using_namespace": "clanguml::t00003"
}
```

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">
<defs>
<filter height="300%" id="f1ry3wjug0qxz6" width="300%" x="-1" y="-1">
<filter height="300%" id="f1m8oj9dgdz3td" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,74 +9,74 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1ry3wjug0qxz6)" height="380.9219" id="C_0001371951663534295727" style="stroke: #A80036; stroke-width: 1.5;" width="329" x="7" y="7"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1m8oj9dgdz3td)" height="380.9219" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="335" y1="39" y2="39"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L34" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L34" xlink:show="new" xlink:title="public_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L34" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L34" 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="45"/>
<ellipse cx="18" cy="50" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L34" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L34" xlink:show="new" xlink:title="public_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L34" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L34" 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="53.2104">public_member : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L42" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L42" xlink:show="new" xlink:title="protected_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L42" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L42" 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="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;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L42" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L42" xlink:show="new" xlink:title="protected_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L42" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L42" 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="66.0151">protected_member : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L51" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L51" xlink:show="new" xlink:title="private_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L51" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L51" 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="70.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="72.6094"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L51" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L51" xlink:show="new" xlink:title="private_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L51" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L51" 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="78.8198">private_member : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="a_" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L52" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L52" 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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="85.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="a_" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L52" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L52" 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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="b_" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L52" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L52" 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="96.2188"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="98.2188"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="b_" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L52" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="c_" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L52" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="111.0234"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="c_" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L52" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L52" 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="117.2339">c_ : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L35" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L35" xlink:show="new" xlink:title="static_int" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L35" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L35" 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="121.8281"/>
<ellipse cx="18" cy="126.8281" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L35" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L35" xlink:show="new" xlink:title="static_int" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L35" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L35" 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="130.0386">static_int : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L36" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L36" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L36" 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="134.6328"/>
<ellipse cx="18" cy="139.6328" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L36" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L36" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L36" 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="142.8433">static_const_int : const int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L37" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L37" xlink:show="new" xlink:title="auto_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L37" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L37" 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="147.4375"/>
<ellipse cx="18" cy="152.4375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L37" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L37" xlink:show="new" xlink:title="auto_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L37" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L37" 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="155.6479">auto_member : const unsigned long</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="335" y1="162.2422" y2="162.2422"/>
@@ -112,11 +112,11 @@
<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/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L44" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L44" xlink:show="new" xlink:title="compare" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L44" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L44" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00003/t00003.cc#L44" xlink:show="new" xlink:title="compare" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L44" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00003/t00003.cc#L44" 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="381.3276">compare : std::function&lt;bool (const int)&gt;</text>
</a>
</g>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 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="372px" preserveAspectRatio="none" style="width:962px;height:372px;" version="1.1" viewBox="0 0 962 372" width="962px" 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>
<filter height="300%" id="f7zx2lw6ebp7k" width="300%" x="-1" y="-1">
<filter height="300%" id="fwe8dbyua3dx6" width="300%" x="-1" y="-1">
<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"/>
<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>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L4" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L4" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="48" id="C_0001232624428734051711" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="18" y="167"/>
<ellipse cx="33" cy="183" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M35.9688,188.6406 Q35.3906,188.9375 34.75,189.0781 Q34.1094,189.2344 33.4063,189.2344 Q30.9063,189.2344 29.5781,187.5938 Q28.2656,185.9375 28.2656,182.8125 Q28.2656,179.6875 29.5781,178.0313 Q30.9063,176.375 33.4063,176.375 Q34.1094,176.375 34.75,176.5313 Q35.4063,176.6875 35.9688,176.9844 L35.9688,179.7031 Q35.3438,179.125 34.75,178.8594 Q34.1563,178.5781 33.5313,178.5781 Q32.1875,178.5781 31.5,179.6563 Q30.8125,180.7188 30.8125,182.8125 Q30.8125,184.9063 31.5,185.9844 Q32.1875,187.0469 33.5313,187.0469 Q34.1563,187.0469 34.75,186.7813 Q35.3438,186.5 35.9688,185.9219 L35.9688,188.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="47" y="187.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="19" x2="57" y1="199" y2="199"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="19" x2="57" y1="207" y2="207"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L4" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L4" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L6" target="_top" title="B##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L6" xlink:show="new" xlink:title="B##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="86.4141" id="C_0001630205507215126623" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="6" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L6" target="_top" title="B##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L6" xlink:show="new" xlink:title="B##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
@@ -28,28 +28,28 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="73.6094" id="C_0001552274940876611774" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="164.5" y="288"/>
<ellipse cx="220.75" cy="304" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M223.7188,309.6406 Q223.1406,309.9375 222.5,310.0781 Q221.8594,310.2344 221.1563,310.2344 Q218.6563,310.2344 217.3281,308.5938 Q216.0156,306.9375 216.0156,303.8125 Q216.0156,300.6875 217.3281,299.0313 Q218.6563,297.375 221.1563,297.375 Q221.8594,297.375 222.5,297.5313 Q223.1563,297.6875 223.7188,297.9844 L223.7188,300.7031 Q223.0938,300.125 222.5,299.8594 Q221.9063,299.5781 221.2813,299.5781 Q219.9375,299.5781 219.25,300.6563 Q218.5625,301.7188 218.5625,303.8125 Q218.5625,305.9063 219.25,306.9844 Q219.9375,308.0469 221.2813,308.0469 Q221.9063,308.0469 222.5,307.7813 Q223.0938,307.5 223.7188,306.9219 L223.7188,309.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="241.25" y="308.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="165.5" x2="292.5" y1="320" y2="320"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="165.5" x2="292.5" y1="328" y2="328"/>
<ellipse cx="175.5" cy="339" 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="184.5" y="342.2104">foo() const : void</text>
<ellipse cx="175.5" cy="351.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="184.5" y="355.0151">foo2() const : void</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L13" target="_top" title="A##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L13" xlink:show="new" xlink:title="A##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="48" id="C_0001742499843727859552" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="197" y="167"/>
<ellipse cx="212" cy="183" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M214.9688,188.6406 Q214.3906,188.9375 213.75,189.0781 Q213.1094,189.2344 212.4063,189.2344 Q209.9063,189.2344 208.5781,187.5938 Q207.2656,185.9375 207.2656,182.8125 Q207.2656,179.6875 208.5781,178.0313 Q209.9063,176.375 212.4063,176.375 Q213.1094,176.375 213.75,176.5313 Q214.4063,176.6875 214.9688,176.9844 L214.9688,179.7031 Q214.3438,179.125 213.75,178.8594 Q213.1563,178.5781 212.5313,178.5781 Q211.1875,178.5781 210.5,179.6563 Q209.8125,180.7188 209.8125,182.8125 Q209.8125,184.9063 210.5,185.9844 Q211.1875,187.0469 212.5313,187.0469 Q213.1563,187.0469 213.75,186.7813 Q214.3438,186.5 214.9688,185.9219 L214.9688,188.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="226" y="187.1543">A::AA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="260" y1="199" y2="199"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="198" x2="260" y1="207" y2="207"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L13" target="_top" title="A##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L13" xlink:show="new" xlink:title="A##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L15" target="_top" title="A##AA##Lights" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L15" xlink:show="new" xlink:title="A##AA##Lights" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="86.4141" id="C_0000590936874508841244" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="105.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L15" target="_top" title="A##AA##Lights" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L15" xlink:show="new" xlink:title="A##AA##Lights" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
@@ -59,133 +59,175 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L17" target="_top" title="A##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L17" xlink:show="new" xlink:title="A##AA##AAA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="48" id="C_0001430186633004282131" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="250" y="27"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L17" target="_top" title="A##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L17" xlink:show="new" xlink:title="A##AA##AAA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L24" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L24" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="60.8047" id="C_0002278328177727440136" style="stroke: #A80036; stroke-width: 1.5;" width="51" x="510.5" y="294.5"/>
<ellipse cx="525.5" cy="310.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M528.4688,316.1406 Q527.8906,316.4375 527.25,316.5781 Q526.6094,316.7344 525.9063,316.7344 Q523.4063,316.7344 522.0781,315.0938 Q520.7656,313.4375 520.7656,310.3125 Q520.7656,307.1875 522.0781,305.5313 Q523.4063,303.875 525.9063,303.875 Q526.6094,303.875 527.25,304.0313 Q527.9063,304.1875 528.4688,304.4844 L528.4688,307.2031 Q527.8438,306.625 527.25,306.3594 Q526.6563,306.0781 526.0313,306.0781 Q524.6875,306.0781 524,307.1563 Q523.3125,308.2188 523.3125,310.3125 Q523.3125,312.4063 524,313.4844 Q524.6875,314.5469 526.0313,314.5469 Q526.6563,314.5469 527.25,314.2813 Q527.8438,314 528.4688,313.4219 L528.4688,316.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="539.5" y="314.6543">C</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="555.5" y="291.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="556.5" y="303.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="511.5" x2="560.5" y1="326.5" y2="326.5"/>
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" height="48" id="C_0000287819369330075965" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="418" y="27"/>
<ellipse cx="433" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="24" x="447" y="47.1543">C::B</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"/>
<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="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="419" x2="493" y1="67" y2="67"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L23" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L23" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="491.5" x2="594.5" y1="322" y2="322"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L26" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L26" xlink:show="new" xlink:title="t" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="516.5" y="332.5"/>
<ellipse cx="521.5" cy="337.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L25" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="328"/>
<ellipse cx="501.5" cy="333" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L26" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L26" xlink:show="new" xlink:title="t" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="530.5" y="340.7104">t : T</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L25" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="23" x="510.5" y="336.2104">t : T</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="511.5" x2="560.5" y1="347.3047" y2="347.3047"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L28" target="_top" title="C&lt;T&gt;##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L28" xlink:show="new" xlink:title="C&lt;T&gt;##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="48" id="C_0002193204622363769010" style="stroke: #A80036; stroke-width: 1.5;" width="91" x="427.5" y="167"/>
<ellipse cx="442.5" cy="183" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M445.4688,188.6406 Q444.8906,188.9375 444.25,189.0781 Q443.6094,189.2344 442.9063,189.2344 Q440.4063,189.2344 439.0781,187.5938 Q437.7656,185.9375 437.7656,182.8125 Q437.7656,179.6875 439.0781,178.0313 Q440.4063,176.375 442.9063,176.375 Q443.6094,176.375 444.25,176.5313 Q444.9063,176.6875 445.4688,176.9844 L445.4688,179.7031 Q444.8438,179.125 444.25,178.8594 Q443.6563,178.5781 443.0313,178.5781 Q441.6875,178.5781 441,179.6563 Q440.3125,180.7188 440.3125,182.8125 Q440.3125,184.9063 441,185.9844 Q441.6875,187.0469 443.0313,187.0469 Q443.6563,187.0469 444.25,186.7813 Q444.8438,186.5 445.4688,185.9219 L445.4688,188.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="456.5" y="187.1543">C&lt;T&gt;::AA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="428.5" x2="517.5" y1="199" y2="199"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="428.5" x2="517.5" y1="207" y2="207"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L37" target="_top" title="b_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="340.8047"/>
<ellipse cx="501.5" cy="345.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L29" target="_top" title="C&lt;T&gt;##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L29" xlink:show="new" xlink:title="C&lt;T&gt;##AA##AAA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="48" id="C_0002210871105688061023" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="381.5" y="27"/>
<ellipse cx="396.5" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M399.4688,48.6406 Q398.8906,48.9375 398.25,49.0781 Q397.6094,49.2344 396.9063,49.2344 Q394.4063,49.2344 393.0781,47.5938 Q391.7656,45.9375 391.7656,42.8125 Q391.7656,39.6875 393.0781,38.0313 Q394.4063,36.375 396.9063,36.375 Q397.6094,36.375 398.25,36.5313 Q398.9063,36.6875 399.4688,36.9844 L399.4688,39.7031 Q398.8438,39.125 398.25,38.8594 Q397.6563,38.5781 397.0313,38.5781 Q395.6875,38.5781 395,39.6563 Q394.3125,40.7188 394.3125,42.8125 Q394.3125,44.9063 395,45.9844 Q395.6875,47.0469 397.0313,47.0469 Q397.6563,47.0469 398.25,46.7813 Q398.8438,46.5 399.4688,45.9219 L399.4688,48.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="410.5" y="47.1543">C&lt;T&gt;::AA::AAA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="382.5" x2="503.5" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="382.5" x2="503.5" y1="67" y2="67"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L37" target="_top" title="b_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="79" x="510.5" y="349.0151">b_int : B&lt;int&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L32" target="_top" title="C&lt;T&gt;##AA##CCC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L32" xlink:show="new" xlink:title="C&lt;T&gt;##AA##CCC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="73.6094" id="C_0001735050661757563707" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="539.5" y="14"/>
<ellipse cx="554.5" cy="30" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M558.6094,36 L550.8906,36 L550.8906,23.6094 L558.6094,23.6094 L558.6094,25.7656 L553.3438,25.7656 L553.3438,28.4375 L558.1094,28.4375 L558.1094,30.5938 L553.3438,30.5938 L553.3438,33.8438 L558.6094,33.8438 L558.6094,36 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="568.5" y="34.1543">C&lt;T&gt;::AA::CCC</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="540.5" x2="661.5" y1="46" y2="46"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="545.5" y="60.2104">CCC_1</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="545.5" y="73.0151">CCC_2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="540.5" x2="661.5" y1="79.6094" y2="79.6094"/>
<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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L27" target="_top" title="C##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L27" xlink:show="new" xlink:title="C##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L35" target="_top" title="C&lt;T&gt;##CC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L35" xlink:show="new" xlink:title="C&lt;T&gt;##CC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="73.6094" id="C_0001099938372680070726" style="stroke: #A80036; stroke-width: 1.5;" width="91" x="553.5" y="154"/>
<ellipse cx="568.5" cy="170" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M572.6094,176 L564.8906,176 L564.8906,163.6094 L572.6094,163.6094 L572.6094,165.7656 L567.3438,165.7656 L567.3438,168.4375 L572.1094,168.4375 L572.1094,170.5938 L567.3438,170.5938 L567.3438,173.8438 L572.6094,173.8438 L572.6094,176 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="582.5" y="174.1543">C&lt;T&gt;::CC</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="554.5" x2="643.5" y1="186" y2="186"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="29" x="559.5" y="200.2104">CC_1</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="29" x="559.5" y="213.0151">CC_2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="554.5" x2="643.5" y1="219.6094" y2="219.6094"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L28" target="_top" title="C##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L28" xlink:show="new" xlink:title="C##AA##AAA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L39" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L39" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="48" id="C_0000612133170877135796" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="782" y="167"/>
<ellipse cx="797" cy="183" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M799.9688,188.6406 Q799.3906,188.9375 798.75,189.0781 Q798.1094,189.2344 797.4063,189.2344 Q794.9063,189.2344 793.5781,187.5938 Q792.2656,185.9375 792.2656,182.8125 Q792.2656,179.6875 793.5781,178.0313 Q794.9063,176.375 797.4063,176.375 Q798.1094,176.375 798.75,176.5313 Q799.4063,176.6875 799.9688,176.9844 L799.9688,179.7031 Q799.3438,179.125 798.75,178.8594 Q798.1563,178.5781 797.5313,178.5781 Q796.1875,178.5781 795.5,179.6563 Q794.8125,180.7188 794.8125,182.8125 Q794.8125,184.9063 795.5,185.9844 Q796.1875,187.0469 797.5313,187.0469 Q798.1563,187.0469 798.75,186.7813 Q799.3438,186.5 799.9688,185.9219 L799.9688,188.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="52" x="811" y="187.1543">detail::D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="783" x2="865" y1="199" y2="199"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="783" x2="865" y1="207" y2="207"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L30" target="_top" title="C##AA##CCC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L30" xlink:show="new" xlink:title="C##AA##CCC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="677" x2="771" y1="46" y2="46"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="682" y="60.2104">CCC_1</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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L41" target="_top" title="D##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L41" xlink:show="new" xlink:title="D##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="86.4141" id="C_0001572080057917630922" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="698" y="8"/>
<ellipse cx="713" cy="24" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M717.1094,30 L709.3906,30 L709.3906,17.6094 L717.1094,17.6094 L717.1094,19.7656 L711.8438,19.7656 L711.8438,22.4375 L716.6094,22.4375 L716.6094,24.5938 L711.8438,24.5938 L711.8438,27.8438 L717.1094,27.8438 L717.1094,30 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="727" y="28.1543">detail::D::AA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="699" x2="805" y1="40" y2="40"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="704" y="54.2104">AA_1</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="704" y="67.0151">AA_2</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="704" y="79.8198">AA_3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="699" x2="805" y1="86.4141" y2="86.4141"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L33" target="_top" title="C##B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L33" xlink:show="new" xlink:title="C##B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="367" x2="433" y1="193.5" y2="193.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L43" target="_top" title="D##DD" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00004/t00004.cc#L43" xlink:show="new" xlink:title="D##DD" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f7zx2lw6ebp7k)" height="48" id="C_0000600916232677555492" style="stroke: #A80036; stroke-width: 1.5;" width="110" x="841" y="27"/>
<ellipse cx="856" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M858.9688,48.6406 Q858.3906,48.9375 857.75,49.0781 Q857.1094,49.2344 856.4063,49.2344 Q853.9063,49.2344 852.5781,47.5938 Q851.2656,45.9375 851.2656,42.8125 Q851.2656,39.6875 852.5781,38.0313 Q853.9063,36.375 856.4063,36.375 Q857.1094,36.375 857.75,36.5313 Q858.4063,36.6875 858.9688,36.9844 L858.9688,39.7031 Q858.3438,39.125 857.75,38.8594 Q857.1563,38.5781 856.5313,38.5781 Q855.1875,38.5781 854.5,39.6563 Q853.8125,40.7188 853.8125,42.8125 Q853.8125,44.9063 854.5,45.9844 Q855.1875,47.0469 856.5313,47.0469 Q857.1563,47.0469 857.75,46.7813 Q858.3438,46.5 858.9688,45.9219 L858.9688,48.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="870" y="47.1543">detail::D::DD</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="842" x2="950" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="842" x2="950" y1="67" y2="67"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L34" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="374" y="201.5"/>
</a>
<path d="M38,94.15 C38,112.48 38,133.8 38,151.68 " fill="none" id="C_0001630205507215126623-&gt;C_0001232624428734051711" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="38" cy="158.94" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="38" x2="38" y1="150.94" y2="166.94"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="46" x2="30" y1="158.94" y2="158.94"/>
<path d="M229,215.3 C229,231.2 229,252.9 229,272.74 " fill="none" id="C_0001742499843727859552-&gt;C_0001552274940876611774" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="229" cy="279.75" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="229" x2="229" y1="271.75" y2="287.75"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="237" x2="221" y1="279.75" y2="279.75"/>
<path d="M181.08,94.15 C190.52,113.04 201.56,135.11 210.65,153.31 " fill="none" id="C_0000590936874508841244-&gt;C_0001742499843727859552" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="213.8923" cy="159.7846" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="210.3146" x2="217.47" y1="152.6292" y2="166.94"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="221.0477" x2="206.7369" y1="156.2069" y2="163.3623"/>
<path d="M286.45,75.1 C275.8,96.39 259.82,128.36 247.41,153.18 " fill="none" id="C_0001430186633004282131-&gt;C_0001742499843727859552" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="244.1708" cy="159.6761" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="247.7515" x2="240.59" y1="152.5222" y2="166.83"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="251.3246" x2="237.0169" y1="163.2569" y2="156.0954"/>
<path d="M484.12,215.3 C492.75,233.39 504.97,258.98 515.38,280.79 " fill="none" id="C_0002193204622363769010-&gt;C_0002278328177727440136" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="518.4508" cy="287.2418" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="515.0016" x2="521.9" y1="280.0235" y2="294.46"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="525.669" x2="511.2325" y1="283.7925" y2="290.691"/>
<path d="M448.02,75.1 C452.59,96.09 459.41,127.47 464.77,152.13 " fill="none" id="C_0002210871105688061023-&gt;C_0002193204622363769010" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="466.2609" cy="159.0125" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="464.5618" x2="467.96" y1="151.195" y2="166.83"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="474.0784" x2="458.4434" y1="157.3134" y2="160.7116"/>
<path d="M567.37,88.26 C547.96,109.18 523.7,135.34 504.64,155.89 " fill="none" id="C_0001735050661757563707-&gt;C_0002193204622363769010" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="499.8095" cy="161.0939" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="505.249" x2="494.37" y1="155.2277" y2="166.96"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="505.6757" x2="493.9434" y1="166.5334" y2="155.6543"/>
<path d="M581.78,228.07 C574.04,244.29 564.84,263.57 556.72,280.58 " fill="none" id="C_0001099938372680070726-&gt;C_0002278328177727440136" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="553.6692" cy="286.9918" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="557.1184" x2="550.22" y1="279.7735" y2="294.21"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="560.8875" x2="546.451" y1="290.441" y2="283.5425"/>
<path d="M773.99,94.15 C783.9,113.14 795.48,135.33 805,153.58 " fill="none" id="C_0001572080057917630922-&gt;C_0000612133170877135796" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="808.2679" cy="159.8481" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="804.5658" x2="811.97" y1="152.7563" y2="166.94"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="815.3598" x2="801.176" y1="156.146" y2="163.5502"/>
<path d="M883.95,75.1 C872.79,96.49 856,128.66 843.03,153.52 " fill="none" id="C_0000600916232677555492-&gt;C_0000612133170877135796" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="839.7921" cy="159.7381" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="843.4942" x2="836.09" y1="152.6463" y2="166.83"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="846.884" x2="832.7002" y1="163.4402" y2="156.036"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L34" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L39" target="_top" title="C##CC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L39" xlink:show="new" xlink:title="C##CC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="684" x2="746" y1="187" y2="187"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="29" x="689" y="201.2104">CC_1</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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L43" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L43" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L45" target="_top" title="D##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L45" xlink:show="new" xlink:title="D##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="808" x2="914" y1="40" y2="40"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="813" y="54.2104">AA_1</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="813" y="67.0151">AA_2</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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L47" target="_top" title="D##DD" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00004/t00004.cc#L47" xlink:show="new" xlink:title="D##DD" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fwe8dbyua3dx6)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="951" x2="1059" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="951" x2="1059" y1="67" y2="67"/>
</a>
<path d="M38,94.08 C38,112.65 38,134.33 38,152.47 " fill="none" id="C_0001630205507215126623-&gt;C_0001232624428734051711" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="38" cy="159.64" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="38" x2="38" y1="151.64" y2="167.64"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="46" x2="30" y1="159.64" y2="159.64"/>
<path d="M241,216.17 C241,232.28 241,254.4 241,274.57 " fill="none" id="C_0001742499843727859552-&gt;C_0001552274940876611774" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="241" cy="281.83" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="241" x2="241" y1="273.83" y2="289.83"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="249" x2="233" y1="281.83" y2="281.83"/>
<path d="M184.52,94.08 C195.78,113.41 209.01,136.1 219.83,154.66 " fill="none" id="C_0000590936874508841244-&gt;C_0001742499843727859552" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="223.3652" cy="160.7262" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="219.3404" x2="227.39" y1="153.8124" y2="167.64"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="230.279" x2="216.4514" y1="156.7014" y2="164.751"/>
<path d="M288.46,75.27 C279.7,96.61 266.58,128.62 256.35,153.56 " fill="none" id="C_0001430186633004282131-&gt;C_0001742499843727859552" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="253.6041" cy="160.2577" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="256.6382" x2="250.57" y1="152.8554" y2="167.66"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="261.0064" x2="246.2018" y1="163.2918" y2="157.2236"/>
<path d="M446.63,75.27 C439.26,93.56 428.74,119.67 419.56,142.46 " fill="none" id="C_0000287819369330075965-&gt;C_0001381298335849583950" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="425.91,145.42,411.94,161.36,412.92,140.19,425.91,145.42" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M527.6,277.5 C508.75,218.12 477.58,119.97 463.42,75.36 " fill="none" id="C_0002278328177727440136&lt;-C_0000287819369330075965" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="531.54,289.91,533.5388,282.9814,527.9119,278.4716,525.9132,285.4002,531.54,289.91" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="519" cy="192.5664" 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="31" x="526" y="196.5669">b_int</text>
<path d="M603.28,216.17 C594.14,232.83 581.46,255.93 570.09,276.65 " fill="none" id="C_0000623940132897927654-&gt;C_0002278328177727440136" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="566.6995" cy="282.8171" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="570.549" x2="562.85" y1="275.8041" y2="289.83"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="573.7124" x2="559.6866" y1="286.6666" y2="278.9676"/>
<path d="M596.85,75.27 C600.35,96.41 605.58,128.02 609.69,152.86 " fill="none" id="C_0001597801087286500866-&gt;C_0000623940132897927654" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="610.8297" cy="159.768" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="609.5195" x2="612.14" y1="151.8761" y2="167.66"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="618.7217" x2="602.9378" y1="158.4578" y2="161.0783"/>
<path d="M695.91,88.16 C679.76,108.94 659.56,134.94 643.51,155.59 " fill="none" id="C_0000081819202639599734-&gt;C_0000623940132897927654" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="639.0389" cy="161.3531" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="643.9478" x2="634.13" y1="155.0363" y2="167.67"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="645.3558" x2="632.722" y1="166.262" y2="156.4442"/>
<path d="M431.74,222.52 C449.79,239.31 472.8,260.71 493.2,279.68 " fill="none" id="C_0001381298335849583950-&gt;C_0002278328177727440136" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="498.3612" cy="284.4826" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="492.5024" x2="504.22" y1="279.0352" y2="289.93"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="503.8086" x2="492.9138" y1="278.6238" y2="290.3414"/>
<path d="M682.65,218.02 C659.95,235.57 628.94,259.54 601.92,280.44 " fill="none" id="C_0002037378936100378699-&gt;C_0002278328177727440136" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="596.1479" cy="284.9054" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="602.4759" x2="589.82" y1="280.0108" y2="289.8"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="601.0425" x2="591.2533" y1="291.2333" y2="278.5775"/>
<path d="M882.8,94.08 C892.71,113.22 904.33,135.65 913.9,154.12 " fill="none" id="C_0001572080057917630922-&gt;C_0000612133170877135796" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="917.219" cy="160.5372" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="913.538" x2="920.9" y1="153.4343" y2="167.64"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="924.3219" x2="910.1162" y1="156.8562" y2="164.2181"/>
<path d="M992.95,75.27 C981.79,96.81 965,129.22 952.03,154.26 " fill="none" id="C_0000600916232677555492-&gt;C_0000612133170877135796" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="948.771" cy="160.5572" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="952.452" x2="945.09" y1="153.4543" y2="167.66"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="955.8738" x2="941.6681" y1="164.2381" y2="156.8762"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 37 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">
<defs>
<filter height="300%" id="f1h1b1fiul6izd" width="300%" x="-1" y="-1">
<filter height="300%" id="f1njvwi11w9m81" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,204 +9,204 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L3" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L3" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0000096355893895780319" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L3" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L3" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L6" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L6" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0001909425857334087541" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L5" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L5" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L9" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L9" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0000968176384460064907" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L7" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L7" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L12" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L12" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0001735599590836186693" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="231.5" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L9" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L9" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L15" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L15" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0000887960136921844658" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="308" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L11" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L11" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L18" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L18" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0000772719357856231772" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="383.5" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L13" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L13" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L21" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L21" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0000979147885884736437" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="457.5" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L15" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L15" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L24" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L24" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0001440673301054236675" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="533.5" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L17" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L17" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L27" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L27" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0000109681731550086430" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="609.5" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L19" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L19" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L30" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L30" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0000338330011969650325" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="679.5" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L21" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L21" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L33" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L33" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="48" id="C_0002179119389830432509" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="749.5" y="325"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L23" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L23" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L36" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L36" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h1b1fiul6izd)" height="240.0703" id="C_0000630692407373144211" style="stroke: #A80036; stroke-width: 1.5;" width="212" x="297" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L25" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L25" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1njvwi11w9m81)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="508" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L38" xlink:show="new" xlink:title="some_int" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L27" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="46"/>
<ellipse cx="308" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L38" xlink:show="new" xlink:title="some_int" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L27" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="78" x="317" y="54.2104">some_int : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L39" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L28" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="58.8047"/>
<ellipse cx="308" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L39" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L28" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="134" x="317" y="67.0151">some_int_pointer : int *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L40" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L29" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="71.6094"/>
<ellipse cx="308" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L40" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L29" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="186" x="317" y="79.8198">some_int_pointer_pointer : int **</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L41" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L30" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="84.4141"/>
<ellipse cx="308" cy="89.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L41" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L30" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="153" x="317" y="92.6245">some_int_reference : int &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L42" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L42" xlink:show="new" xlink:title="a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L31" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="97.2188"/>
<ellipse cx="308" cy="102.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L42" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L42" xlink:show="new" xlink:title="a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L31" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="26" x="317" y="105.4292">a : A</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L43" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L43" xlink:show="new" xlink:title="b" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L32" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="110.0234"/>
<ellipse cx="308" cy="115.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L43" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L43" xlink:show="new" xlink:title="b" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L32" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="37" x="317" y="118.2339">b : B *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L44" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L44" xlink:show="new" xlink:title="c" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L33" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="122.8281"/>
<ellipse cx="308" cy="127.8281" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L44" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L44" xlink:show="new" xlink:title="c" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L33" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="40" x="317" y="131.0386">c : C &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L45" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L45" xlink:show="new" xlink:title="d" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L34" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="135.6328"/>
<ellipse cx="308" cy="140.6328" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L45" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L45" xlink:show="new" xlink:title="d" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L34" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="72" x="317" y="143.8433">d : const D *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L46" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L46" xlink:show="new" xlink:title="e" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L35" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="148.4375"/>
<ellipse cx="308" cy="153.4375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L46" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L46" xlink:show="new" xlink:title="e" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L35" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="75" x="317" y="156.6479">e : const E &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L47" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L47" xlink:show="new" xlink:title="f" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L36" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="161.2422"/>
<ellipse cx="308" cy="166.2422" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L47" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L47" xlink:show="new" xlink:title="f" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L36" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="46" x="317" y="169.4526">f : F &amp;&amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L48" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L48" xlink:show="new" xlink:title="g" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L37" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="174.0469"/>
<ellipse cx="308" cy="179.0469" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L48" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L48" xlink:show="new" xlink:title="g" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L37" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="44" x="317" y="182.2573">g : G **</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L49" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L49" xlink:show="new" xlink:title="h" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L38" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="186.8516"/>
<ellipse cx="308" cy="191.8516" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L49" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L49" xlink:show="new" xlink:title="h" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L38" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="49" x="317" y="195.062">h : H ***</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L50" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L50" xlink:show="new" xlink:title="i" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L39" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="199.6563"/>
<ellipse cx="308" cy="204.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L50" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L50" xlink:show="new" xlink:title="i" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L39" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="38" x="317" y="207.8667">i : I *&amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L51" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L51" xlink:show="new" xlink:title="j" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L40" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="212.4609"/>
<ellipse cx="308" cy="217.4609" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L51" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L51" xlink:show="new" xlink:title="j" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L40" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="72" x="317" y="220.6714">j : volatile J *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L52" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L52" xlink:show="new" xlink:title="k" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L41" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="225.2656"/>
<ellipse cx="308" cy="230.2656" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L52" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00005/t00005.cc#L52" xlink:show="new" xlink:title="k" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00005/t00005.cc#L41" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="35" x="317" y="233.4761">k : K *</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="508" y1="240.0703" y2="240.0703"/>

Before

Width:  |  Height:  |  Size: 41 KiB

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="479px" preserveAspectRatio="none" style="width:1390px;height:479px;" version="1.1" viewBox="0 0 1390 479" width="1390px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1nnjxoxxgj0qx" width="300%" x="-1" y="-1">
<filter height="300%" id="f8tr0q5cwtd14" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,136 +9,136 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0000989095304444672400" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L10" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L10" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0000648285260245005311" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L9" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L9" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L13" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L13" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0000323304333007297774" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L11" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L11" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L16" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L16" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0001006912399043633492" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="231.5" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L13" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L13" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L19" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L19" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0001092550394020578978" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="1146" y="414.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L15" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L15" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L22" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L22" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0000965398761810782236" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="307.5" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L17" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L17" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L25" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L25" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0001764732000887030464" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="381.5" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L19" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L19" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L28" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L28" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0001669285599837552146" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="457.5" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L21" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L21" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L31" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L31" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0002234750598599000377" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="533.5" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L23" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L23" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L34" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L34" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0001335933649375465369" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="603.5" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L25" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L25" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L37" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L37" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0001603190364864080123" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="673.5" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L27" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L27" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L40" target="_top" title="L" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L40" xlink:show="new" xlink:title="L" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0000305487238408320046" style="stroke: #A80036; stroke-width: 1.5;" width="38" x="748" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L29" target="_top" title="L" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L29" xlink:show="new" xlink:title="L" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L43" target="_top" title="M" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L43" xlink:show="new" xlink:title="M" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0001664744512423723275" style="stroke: #A80036; stroke-width: 1.5;" width="42" x="821" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L31" target="_top" title="M" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L31" xlink:show="new" xlink:title="M" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L46" target="_top" title="N" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L46" xlink:show="new" xlink:title="N" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0000950210019792152600" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="898.5" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L33" target="_top" title="N" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L33" xlink:show="new" xlink:title="N" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L49" target="_top" title="NN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L49" xlink:show="new" xlink:title="NN" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0001662349735899726224" style="stroke: #A80036; stroke-width: 1.5;" width="50" x="975" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L35" target="_top" title="NN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L35" xlink:show="new" xlink:title="NN" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L52" target="_top" title="NNN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L52" xlink:show="new" xlink:title="NNN" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0001963145075481599858" style="stroke: #A80036; stroke-width: 1.5;" width="59" x="1060.5" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L37" target="_top" title="NNN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L37" xlink:show="new" xlink:title="NNN" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L55" target="_top" title="custom_container" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L55" xlink:show="new" xlink:title="custom_container" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="60.8047" id="C_0000916380191954937631" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="1221.5" y="408"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L39" target="_top" title="custom_container" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L39" xlink:show="new" xlink:title="custom_container" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
@@ -146,15 +146,15 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L57" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L57" xlink:show="new" xlink:title="data" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L41" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="1232.5" cy="451" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L57" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L57" xlink:show="new" xlink:title="data" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L41" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1222.5" x2="1375.5" y1="460.8047" y2="460.8047"/>
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" height="48" id="C_0000050153113082434858" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="1155" y="299"/>
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
@@ -162,102 +162,102 @@
<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="339" y2="339"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L60" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L60" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1nnjxoxxgj0qx)" 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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L44" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L44" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f8tr0q5cwtd14)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="472" x2="700" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L62" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L62" xlink:show="new" xlink:title="a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L46" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L62" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L62" xlink:show="new" xlink:title="a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L46" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L63" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L63" xlink:show="new" xlink:title="b" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L47" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L63" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L63" xlink:show="new" xlink:title="b" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L47" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L65" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L65" xlink:show="new" xlink:title="c" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L49" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L65" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L65" xlink:show="new" xlink:title="c" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L49" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L66" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L66" xlink:show="new" xlink:title="d" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L50" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="89.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L66" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L66" xlink:show="new" xlink:title="d" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L50" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L68" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L68" xlink:show="new" xlink:title="e" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L52" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="102.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L68" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L68" xlink:show="new" xlink:title="e" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L52" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L70" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L70" xlink:show="new" xlink:title="f" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L54" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="115.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L70" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L70" xlink:show="new" xlink:title="f" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L54" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L71" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L71" xlink:show="new" xlink:title="g" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L55" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="127.8281" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L71" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L71" xlink:show="new" xlink:title="g" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L55" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L73" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L73" xlink:show="new" xlink:title="h" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L57" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="140.6328" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L73" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L73" xlink:show="new" xlink:title="h" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L57" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L74" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L74" xlink:show="new" xlink:title="i" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L58" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="153.4375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L74" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L74" xlink:show="new" xlink:title="i" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L58" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L76" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L76" xlink:show="new" xlink:title="j" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L60" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="166.2422" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L76" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L76" xlink:show="new" xlink:title="j" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L60" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L77" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L77" xlink:show="new" xlink:title="k" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L61" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="179.0469" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L77" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L77" xlink:show="new" xlink:title="k" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L61" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L79" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L79" xlink:show="new" xlink:title="lm" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L63" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="191.8516" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L79" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L79" xlink:show="new" xlink:title="lm" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L63" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L81" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L81" xlink:show="new" xlink:title="ns" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L65" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="482" cy="204.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L81" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00006/t00006.cc#L81" xlink:show="new" xlink:title="ns" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00006/t00006.cc#L65" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="472" x2="700" y1="214.4609" y2="214.4609"/>

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

@@ -22,14 +22,11 @@ File t00007.cc
namespace clanguml {
namespace t00007 {
class A {
};
class A { };
class B {
};
class B { };
class C {
};
class C { };
class R {
public:
@@ -37,9 +34,153 @@ public:
std::shared_ptr<B> b;
std::weak_ptr<C> c;
};
}
}
} // namespace t00007
} // namespace clanguml
```
## Generated UML diagrams
![t00007_class](./t00007_class.svg "Smart pointers")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00007::A",
"id": "98876622534017019",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00007",
"source_location": {
"file": "../../tests/t00007/t00007.cc",
"line": 5
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00007::B",
"id": "696381312773707784",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "B",
"namespace": "clanguml::t00007",
"source_location": {
"file": "../../tests/t00007/t00007.cc",
"line": 7
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00007::C",
"id": "972031178679364068",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "C",
"namespace": "clanguml::t00007",
"source_location": {
"file": "../../tests/t00007/t00007.cc",
"line": 9
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00007::R",
"id": "66905874721300157",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "a",
"source_location": {
"file": "../../tests/t00007/t00007.cc",
"line": 13
},
"type": "std::unique_ptr<A>"
},
{
"access": "public",
"is_static": false,
"name": "b",
"source_location": {
"file": "../../tests/t00007/t00007.cc",
"line": 14
},
"type": "std::shared_ptr<B>"
},
{
"access": "public",
"is_static": false,
"name": "c",
"source_location": {
"file": "../../tests/t00007/t00007.cc",
"line": 15
},
"type": "std::weak_ptr<C>"
}
],
"methods": [],
"name": "R",
"namespace": "clanguml::t00007",
"source_location": {
"file": "../../tests/t00007/t00007.cc",
"line": 11
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00007_class",
"relationships": [
{
"access": "public",
"destination": "98876622534017019",
"label": "a",
"source": "66905874721300157",
"type": "aggregation"
},
{
"access": "public",
"destination": "696381312773707784",
"label": "b",
"source": "66905874721300157",
"type": "association"
},
{
"access": "public",
"destination": "972031178679364068",
"label": "c",
"source": "66905874721300157",
"type": "association"
}
],
"using_namespace": "clanguml::t00007"
}
```

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">
<defs>
<filter height="300%" id="fyz2m5a8gxwx1" width="300%" x="-1" y="-1">
<filter height="300%" id="f882xrx91ay5y" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,56 +9,56 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fyz2m5a8gxwx1)" height="48" id="C_0000098876622534017019" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="171"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f882xrx91ay5y)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L8" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L8" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fyz2m5a8gxwx1)" height="48" id="C_0000696381312773707784" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="171"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L7" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L7" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f882xrx91ay5y)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L11" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L11" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fyz2m5a8gxwx1)" height="48" id="C_0000972031178679364068" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="171"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L9" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L9" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f882xrx91ay5y)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L14" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L14" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fyz2m5a8gxwx1)" height="86.4141" id="C_0000066905874721300157" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="21.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L11" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L11" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f882xrx91ay5y)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="22.5" x2="179.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L16" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L16" xlink:show="new" xlink:title="a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L13" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="32.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L16" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L16" xlink:show="new" xlink:title="a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L13" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L17" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L17" xlink:show="new" xlink:title="b" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L14" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="32.5" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L17" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L17" xlink:show="new" xlink:title="b" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L14" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L18" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L18" xlink:show="new" xlink:title="c" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L15" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="32.5" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L18" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00007/t00007.cc#L18" xlink:show="new" xlink:title="c" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00007/t00007.cc#L15" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="22.5" x2="179.5" y1="86.4141" y2="86.4141"/>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -52,9 +52,446 @@ struct D {
void add(int i) { ints.template_template.values.push_back(i); }
};
}
}
struct E {
template <typename ET> struct nested_template {
using DT = ET;
static DT *get(ET *d) { return d; }
};
};
template <> struct E::nested_template<char> {
using DeclType = char;
static DeclType *getDecl(char *c) { return c; }
};
} // namespace t00008
} // namespace clanguml
```
## Generated UML diagrams
![t00008_class](./t00008_class.svg "Template and template template relationships")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00008::A<T,P=T,clanguml::t00008::CMP=nullptr,int N=3>",
"id": "1657660300852090121",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "value",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 11
},
"type": "T"
},
{
"access": "public",
"is_static": false,
"name": "pointer",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 12
},
"type": "T *"
},
{
"access": "public",
"is_static": false,
"name": "reference",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 13
},
"type": "T &"
},
{
"access": "public",
"is_static": false,
"name": "values",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 14
},
"type": "std::vector<P>"
},
{
"access": "public",
"is_static": false,
"name": "ints",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 15
},
"type": "std::array<int,N>"
},
{
"access": "public",
"is_static": false,
"name": "comparator",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 17
},
"type": "clanguml::t00008::CMP"
}
],
"methods": [],
"name": "A",
"namespace": "clanguml::t00008",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 9
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
},
{
"default": "T",
"is_variadic": false,
"kind": "template_type",
"name": "P",
"template_parameters": []
},
{
"default": "nullptr",
"is_variadic": false,
"kind": "non_type_template",
"template_parameters": [],
"type": "clanguml::t00008::CMP"
},
{
"default": "3",
"is_variadic": false,
"kind": "non_type_template",
"name": "N",
"template_parameters": [],
"type": "int"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00008::Vector<T>",
"id": "1677407014842680311",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "values",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 21
},
"type": "std::vector<T>"
}
],
"methods": [],
"name": "Vector",
"namespace": "clanguml::t00008",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 20
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00008::B<T,C<>>",
"id": "1968575752686868237",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "template_template",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 25
},
"type": "C<T>"
}
],
"methods": [],
"name": "B",
"namespace": "clanguml::t00008",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 24
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
},
{
"is_variadic": false,
"kind": "template_template_type",
"name": "C<>",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00008::B<int,clanguml::t00008::Vector>",
"id": "1449136415707203971",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "B",
"namespace": "clanguml::t00008",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "int"
},
{
"is_variadic": false,
"kind": "template_type",
"name": "clanguml::t00008::Vector",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00008::D",
"id": "1562396858816419857",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "ints",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 29
},
"type": "B<int,clanguml::t00008::Vector>"
}
],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "add",
"parameters": [
{
"name": "i",
"type": "int"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "D",
"parameters": [
{
"name": "",
"type": "std::tuple<Items...> *"
}
],
"type": "void"
}
],
"name": "D",
"namespace": "clanguml::t00008",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 28
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00008::E",
"id": "1787658457052431115",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "E",
"namespace": "clanguml::t00008",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 36
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00008::E::nested_template<ET>",
"id": "1549419203490064906",
"is_abstract": false,
"is_nested": true,
"is_struct": true,
"is_template": true,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": true,
"is_virtual": false,
"name": "get",
"parameters": [
{
"name": "d",
"type": "ET *"
}
],
"type": "clanguml::t00008::E::nested_template::DT *"
}
],
"name": "E::nested_template",
"namespace": "clanguml::t00008",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 37
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "ET",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00008::E::nested_template<char>",
"id": "33637089897037832",
"is_abstract": false,
"is_nested": true,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "E::nested_template",
"namespace": "clanguml::t00008",
"source_location": {
"file": "../../tests/t00008/t00008.cc",
"line": 44
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "char"
}
],
"type": "class"
}
],
"name": "t00008_class",
"relationships": [
{
"access": "public",
"destination": "1968575752686868237",
"source": "1449136415707203971",
"type": "instantiation"
},
{
"access": "public",
"destination": "1449136415707203971",
"label": "ints",
"source": "1562396858816419857",
"type": "aggregation"
},
{
"access": "public",
"destination": "1787658457052431115",
"source": "1549419203490064906",
"type": "containment"
},
{
"access": "public",
"destination": "1787658457052431115",
"source": "33637089897037832",
"type": "containment"
},
{
"access": "public",
"destination": "1549419203490064906",
"source": "33637089897037832",
"type": "instantiation"
}
],
"using_namespace": "clanguml::t00008"
}
```

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:616px;height:390px;" version="1.1" viewBox="0 0 616 390" width="616px" 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:1102px;height:403px;" version="1.1" viewBox="0 0 1102 403" width="1102px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f6jkinzy11dyx" width="300%" x="-1" y="-1">
<filter height="300%" id="f1pu77y2bpk8la" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,124 +9,164 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f6jkinzy11dyx)" height="124.8281" id="C_0001329861609426650509" style="stroke: #A80036; stroke-width: 1.5;" width="161" x="6" y="8"/>
<ellipse cx="37.65" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M40.6188,29.6406 Q40.0406,29.9375 39.4,30.0781 Q38.7594,30.2344 38.0563,30.2344 Q35.5563,30.2344 34.2281,28.5938 Q32.9156,26.9375 32.9156,23.8125 Q32.9156,20.6875 34.2281,19.0313 Q35.5563,17.375 38.0563,17.375 Q38.7594,17.375 39.4,17.5313 Q40.0563,17.6875 40.6188,17.9844 L40.6188,20.7031 Q39.9938,20.125 39.4,19.8594 Q38.8063,19.5781 38.1813,19.5781 Q36.8375,19.5781 36.15,20.6563 Q35.4625,21.7188 35.4625,23.8125 Q35.4625,25.9063 36.15,26.9844 Q36.8375,28.0469 38.1813,28.0469 Q38.8063,28.0469 39.4,27.7813 Q39.9938,27.5 40.6188,26.9219 L40.6188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="55.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="82" x="88" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="80" x="89" y="17.1387">T,P,CMP,int N</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="166" y1="40" y2="40"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1pu77y2bpk8la)" height="124.8281" id="C_0001657660300852090121" 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;"/>
<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>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="214" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L11" xlink:show="new" xlink:title="value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="46"/>
<ellipse cx="17" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L11" xlink:show="new" xlink:title="value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="49" x="26" y="54.2104">value : T</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L12" xlink:show="new" xlink:title="pointer" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="58.8047"/>
<ellipse cx="17" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L12" xlink:show="new" xlink:title="pointer" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="69" x="26" y="67.0151">pointer : T *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L13" xlink:show="new" xlink:title="reference" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="71.6094"/>
<ellipse cx="17" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L13" xlink:show="new" xlink:title="reference" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="88" x="26" y="79.8198">reference : T &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L14" xlink:show="new" xlink:title="values" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="84.4141"/>
<ellipse cx="17" cy="89.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L14" xlink:show="new" xlink:title="values" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="135" x="26" y="92.6245">values : std::vector&lt;P&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L15" xlink:show="new" xlink:title="ints" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="97.2188"/>
<ellipse cx="17" cy="102.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L15" xlink:show="new" xlink:title="ints" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="133" x="26" y="105.4292">ints : std::array&lt;int,N&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L17" xlink:show="new" xlink:title="comparator" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="110.0234"/>
<ellipse cx="17" cy="115.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L17" xlink:show="new" xlink:title="comparator" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="102" x="26" y="118.2339">comparator : CMP</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="166" y1="124.8281" y2="124.8281"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L20" target="_top" title="Vector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L20" xlink:show="new" xlink:title="Vector" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f6jkinzy11dyx)" height="60.8047" id="C_0001677407014842680311" style="stroke: #A80036; stroke-width: 1.5;" width="161" x="202" y="40"/>
<ellipse cx="252.25" cy="56" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M255.2188,61.6406 Q254.6406,61.9375 254,62.0781 Q253.3594,62.2344 252.6563,62.2344 Q250.1563,62.2344 248.8281,60.5938 Q247.5156,58.9375 247.5156,55.8125 Q247.5156,52.6875 248.8281,51.0313 Q250.1563,49.375 252.6563,49.375 Q253.3594,49.375 254,49.5313 Q254.6563,49.6875 255.2188,49.9844 L255.2188,52.7031 Q254.5938,52.125 254,51.8594 Q253.4063,51.5781 252.7813,51.5781 Q251.4375,51.5781 250.75,52.6563 Q250.0625,53.7188 250.0625,55.8125 Q250.0625,57.9063 250.75,58.9844 Q251.4375,60.0469 252.7813,60.0469 Q253.4063,60.0469 254,59.7813 Q254.5938,59.5 255.2188,58.9219 L255.2188,61.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="272.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="357" y="37"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="358" y="49.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="203" x2="362" y1="72" y2="72"/>
<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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L20" target="_top" title="Vector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L20" xlink:show="new" xlink:title="Vector" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1pu77y2bpk8la)" 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;"/>
<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>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="410" y1="72" y2="72"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/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="208" y="78"/>
<ellipse cx="213" cy="83" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="261" cy="83" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/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="222" y="86.2104">values : std::vector&lt;T&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="203" x2="362" y1="92.8047" y2="92.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f6jkinzy11dyx)" height="60.8047" id="C_0001968575752686868237" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="413" y="319"/>
<ellipse cx="471.75" cy="335" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M474.7188,340.6406 Q474.1406,340.9375 473.5,341.0781 Q472.8594,341.2344 472.1563,341.2344 Q469.6563,341.2344 468.3281,339.5938 Q467.0156,337.9375 467.0156,334.8125 Q467.0156,331.6875 468.3281,330.0313 Q469.6563,328.375 472.1563,328.375 Q472.8594,328.375 473.5,328.5313 Q474.1563,328.6875 474.7188,328.9844 L474.7188,331.7031 Q474.0938,331.125 473.5,330.8594 Q472.9063,330.5781 472.2813,330.5781 Q470.9375,330.5781 470.25,331.6563 Q469.5625,332.7188 469.5625,334.8125 Q469.5625,336.9063 470.25,337.9844 Q470.9375,339.0469 472.2813,339.0469 Q472.9063,339.0469 473.5,338.7813 Q474.0938,338.5 474.7188,337.9219 L474.7188,340.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="492.25" y="339.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="552" y="316"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="39" x="553" y="328.1387">T,C&lt;&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="414" x2="589" y1="351" y2="351"/>
<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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1pu77y2bpk8la)" height="60.8047" id="C_0001968575752686868237" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="492" y="332"/>
<ellipse cx="550.75" cy="348" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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="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="631" y="329"/>
<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="493" x2="668" y1="364" y2="364"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/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="419" y="357"/>
<ellipse cx="424" cy="362" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="503" cy="375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/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="433" y="365.2104">template_template : C&lt;T&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="414" x2="589" y1="371.8047" y2="371.8047"/>
<rect fill="#FEFECE" filter="url(#f6jkinzy11dyx)" height="48" id="C_0001449136415707203971" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="449" y="210"/>
<ellipse cx="464" cy="226" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M466.9688,231.6406 Q466.3906,231.9375 465.75,232.0781 Q465.1094,232.2344 464.4063,232.2344 Q461.9063,232.2344 460.5781,230.5938 Q459.2656,228.9375 459.2656,225.8125 Q459.2656,222.6875 460.5781,221.0313 Q461.9063,219.375 464.4063,219.375 Q465.1094,219.375 465.75,219.5313 Q466.4063,219.6875 466.9688,219.9844 L466.9688,222.7031 Q466.3438,222.125 465.75,221.8594 Q465.1563,221.5781 464.5313,221.5781 Q463.1875,221.5781 462.5,222.6563 Q461.8125,223.7188 461.8125,225.8125 Q461.8125,227.9063 462.5,228.9844 Q463.1875,230.0469 464.5313,230.0469 Q465.1563,230.0469 465.75,229.7813 Q466.3438,229.5 466.9688,228.9219 L466.9688,231.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="478" y="230.1543">B</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="63" x="494" y="207"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="61" x="495" y="219.1387">int,Vector</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="450" x2="553" y1="242" y2="242"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="450" x2="553" y1="250" y2="250"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f6jkinzy11dyx)" height="86.4141" id="C_0001562396858816419857" style="stroke: #A80036; stroke-width: 1.5;" width="207" x="398" y="27.5"/>
<ellipse cx="492.75" cy="43.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M495.7188,49.1406 Q495.1406,49.4375 494.5,49.5781 Q493.8594,49.7344 493.1563,49.7344 Q490.6563,49.7344 489.3281,48.0938 Q488.0156,46.4375 488.0156,43.3125 Q488.0156,40.1875 489.3281,38.5313 Q490.6563,36.875 493.1563,36.875 Q493.8594,36.875 494.5,37.0313 Q495.1563,37.1875 495.7188,37.4844 L495.7188,40.2031 Q495.0938,39.625 494.5,39.3594 Q493.9063,39.0781 493.2813,39.0781 Q491.9375,39.0781 491.25,40.1563 Q490.5625,41.2188 490.5625,43.3125 Q490.5625,45.4063 491.25,46.4844 Q491.9375,47.5469 493.2813,47.5469 Q493.9063,47.5469 494.5,47.2813 Q495.0938,47 495.7188,46.4219 L495.7188,49.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="513.25" y="47.6543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="604" y1="59.5" y2="59.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="493" x2="668" y1="384.8047" y2="384.8047"/>
<rect fill="#FEFECE" filter="url(#f1pu77y2bpk8la)" height="48" id="C_0001449136415707203971" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="528" y="216.5"/>
<ellipse cx="543" 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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="557" 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"/>
<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>
<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="529" x2="632" y1="256.5" y2="256.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1pu77y2bpk8la)" 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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L29" xlink:show="new" xlink:title="ints" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="404" y="65.5"/>
<ellipse cx="409" cy="70.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L29" xlink:show="new" xlink:title="ints" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="452" y="65.5"/>
<ellipse cx="457" cy="70.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00008/t00008.cc#L29" xlink:show="new" xlink:title="ints" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="418" y="73.7104">ints : B&lt;int,Vector&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L29" xlink:show="new" xlink:title="ints" 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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="604" y1="80.3047" y2="80.3047"/>
<ellipse cx="409" 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="418" y="94.5151">add(int i) : void</text>
<ellipse cx="409" 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="181" x="418" y="107.3198">D(std::tuple&lt;Items...&gt; * ) : void</text>
<path d="M501.5,258.24 C501.5,269.87 501.5,284.42 501.5,298.43 " 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="508.5,298.81,501.5,318.81,494.5,298.81,508.5,298.81" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M501.5,126.57 C501.5,154.93 501.5,188.01 501.5,209.67 " fill="none" id="C_0001562396858816419857&lt;-C_0001449136415707203971" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="501.5,113.51,497.5,119.51,501.5,125.51,505.5,119.51,501.5,113.51" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="507.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="514.5" y="176.0669">ints</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="714" y1="80.3047" y2="80.3047"/>
<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="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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L36" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L36" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1pu77y2bpk8la)" height="48" id="C_0001787658457052431115" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="827.5" y="338.5"/>
<ellipse cx="842.5" cy="354.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M845.4688,360.1406 Q844.8906,360.4375 844.25,360.5781 Q843.6094,360.7344 842.9063,360.7344 Q840.4063,360.7344 839.0781,359.0938 Q837.7656,357.4375 837.7656,354.3125 Q837.7656,351.1875 839.0781,349.5313 Q840.4063,347.875 842.9063,347.875 Q843.6094,347.875 844.25,348.0313 Q844.9063,348.1875 845.4688,348.4844 L845.4688,351.2031 Q844.8438,350.625 844.25,350.3594 Q843.6563,350.0781 843.0313,350.0781 Q841.6875,350.0781 841,351.1563 Q840.3125,352.2188 840.3125,354.3125 Q840.3125,356.4063 841,357.4844 Q841.6875,358.5469 843.0313,358.5469 Q843.6563,358.5469 844.25,358.2813 Q844.8438,358 845.4688,357.4219 L845.4688,360.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="856.5" y="358.6543">E</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="828.5" x2="866.5" y1="370.5" y2="370.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="828.5" x2="866.5" y1="378.5" y2="378.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L37" target="_top" title="E##nested_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L37" xlink:show="new" xlink:title="E##nested_template" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1pu77y2bpk8la)" height="60.8047" id="C_0001549419203490064906" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="846.5" y="210"/>
<ellipse cx="892.75" cy="226" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M895.7188,231.6406 Q895.1406,231.9375 894.5,232.0781 Q893.8594,232.2344 893.1563,232.2344 Q890.6563,232.2344 889.3281,230.5938 Q888.0156,228.9375 888.0156,225.8125 Q888.0156,222.6875 889.3281,221.0313 Q890.6563,219.375 893.1563,219.375 Q893.8594,219.375 894.5,219.5313 Q895.1563,219.6875 895.7188,219.9844 L895.7188,222.7031 Q895.0938,222.125 894.5,221.8594 Q893.9063,221.5781 893.2813,221.5781 Q891.9375,221.5781 891.25,222.6563 Q890.5625,223.7188 890.5625,225.8125 Q890.5625,227.9063 891.25,228.9844 Q891.9375,230.0469 893.2813,230.0469 Q893.9063,230.0469 894.5,229.7813 Q895.0938,229.5 895.7188,228.9219 L895.7188,231.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="913.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="1074.5" y="207"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="15" x="1075.5" y="219.1387">ET</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="847.5" x2="1087.5" y1="242" y2="242"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="847.5" x2="1087.5" y1="250" y2="250"/>
<ellipse cx="857.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="866.5" y="264.2104">get(ET * d) : E::nested_template::DT *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L44" target="_top" title="E##nested_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00008/t00008.cc#L44" xlink:show="new" xlink:title="E##nested_template" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1pu77y2bpk8la)" height="48" id="C_0000033637089897037832" style="stroke: #A80036; stroke-width: 1.5;" width="186" x="750.5" y="46.5"/>
<ellipse cx="765.5" cy="62.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M768.4688,68.1406 Q767.8906,68.4375 767.25,68.5781 Q766.6094,68.7344 765.9063,68.7344 Q763.4063,68.7344 762.0781,67.0938 Q760.7656,65.4375 760.7656,62.3125 Q760.7656,59.1875 762.0781,57.5313 Q763.4063,55.875 765.9063,55.875 Q766.6094,55.875 767.25,56.0313 Q767.9063,56.1875 768.4688,56.4844 L768.4688,59.2031 Q767.8438,58.625 767.25,58.3594 Q766.6563,58.0781 766.0313,58.0781 Q764.6875,58.0781 764,59.1563 Q763.3125,60.2188 763.3125,62.3125 Q763.3125,64.4063 764,65.4844 Q764.6875,66.5469 766.0313,66.5469 Q766.6563,66.5469 767.25,66.2813 Q767.8438,66 768.4688,65.4219 L768.4688,68.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="779.5" y="66.6543">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="909.5" y="43.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="910.5" y="55.6387">char</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="751.5" x2="935.5" y1="78.5" y2="78.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="751.5" x2="935.5" y1="86.5" y2="86.5"/>
</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;"/>
<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;"/>
<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;"/>
<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;"/>
<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="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="593.5" y="176.0669">ints</text>
<path d="M937.84,271.16 C919.79,289.21 896.77,312.23 878.49,330.51 " fill="none" id="C_0001549419203490064906-&gt;C_0001787658457052431115" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="873.4569" cy="335.5431" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="879.1137" x2="867.8" y1="329.8863" y2="341.2"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="879.1137" x2="867.8" y1="341.2" y2="329.8863"/>
<path d="M839.36,94.57 C833.26,131.77 823.22,207.25 829.5,271 C831.21,288.34 834.71,307.28 838.18,323.33 " fill="none" id="C_0000033637089897037832-&gt;C_0001787658457052431115" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="839.8023" cy="330.4477" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="838.0346" x2="841.57" y1="322.6455" y2="338.25"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="847.6046" x2="832" y1="328.68" y2="332.2154"/>
<path d="M860.48,94.51 C879.26,119.95 909.99,161.59 933.72,193.73 " 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="939.48,189.75,945.72,209.99,928.21,198.06,939.48,189.75" style="stroke: #A80036; stroke-width: 1.0;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -35,9 +35,225 @@ public:
A<std::string> *astring;
A<std::vector<std::string>> &avector;
};
}
}
} // namespace t00009
} // namespace clanguml
```
## Generated UML diagrams
![t00009_class](./t00009_class.svg "Template instantiation")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00009::A<T>",
"id": "412228989111660105",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "value",
"source_location": {
"file": "../../tests/t00009/t00009.cc",
"line": 9
},
"type": "T"
}
],
"methods": [],
"name": "A",
"namespace": "clanguml::t00009",
"source_location": {
"file": "../../tests/t00009/t00009.cc",
"line": 7
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00009::A<int>",
"id": "1894387438043499",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00009",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "int"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00009::A<std::string>",
"id": "1340793233843139195",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00009",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "std::string"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00009::A<std::vector<std::string>>",
"id": "1370808797762248850",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00009",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "std::string"
}
],
"type": "std::vector"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00009::B",
"id": "176239714450247310",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "aint",
"source_location": {
"file": "../../tests/t00009/t00009.cc",
"line": 14
},
"type": "A<int>"
},
{
"access": "public",
"is_static": false,
"name": "astring",
"source_location": {
"file": "../../tests/t00009/t00009.cc",
"line": 15
},
"type": "A<std::string> *"
},
{
"access": "public",
"is_static": false,
"name": "avector",
"source_location": {
"file": "../../tests/t00009/t00009.cc",
"line": 16
},
"type": "A<std::vector<std::string>> &"
}
],
"methods": [],
"name": "B",
"namespace": "clanguml::t00009",
"source_location": {
"file": "../../tests/t00009/t00009.cc",
"line": 12
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00009_class",
"relationships": [
{
"access": "public",
"destination": "412228989111660105",
"source": "1894387438043499",
"type": "instantiation"
},
{
"access": "public",
"destination": "412228989111660105",
"source": "1340793233843139195",
"type": "instantiation"
},
{
"access": "public",
"destination": "412228989111660105",
"source": "1370808797762248850",
"type": "instantiation"
},
{
"access": "public",
"destination": "1894387438043499",
"label": "aint",
"source": "176239714450247310",
"type": "aggregation"
},
{
"access": "public",
"destination": "1340793233843139195",
"label": "astring",
"source": "176239714450247310",
"type": "association"
},
{
"access": "public",
"destination": "1370808797762248850",
"label": "avector",
"source": "176239714450247310",
"type": "association"
}
],
"using_namespace": "clanguml::t00009"
}
```

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">
<defs>
<filter height="300%" id="fx9tkunsdqdiy" width="300%" x="-1" y="-1">
<filter height="300%" id="fxha1k75pwh7e" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fx9tkunsdqdiy)" height="60.8047" id="C_0000412228989111660105" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="116.5" y="280"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxha1k75pwh7e)" 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;"/>
<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>
@@ -18,15 +18,15 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L9" xlink:show="new" xlink:title="value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="127.5" cy="323" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L9" xlink:show="new" xlink:title="value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="190.5" y1="332.8047" y2="332.8047"/>
<rect fill="#FEFECE" filter="url(#fx9tkunsdqdiy)" height="48" id="C_0000001894387438043499" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="6" y="171"/>
<rect fill="#FEFECE" filter="url(#fxha1k75pwh7e)" 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;"/>
<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>
@@ -34,7 +34,7 @@
<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="211" y2="211"/>
<rect fill="#FEFECE" filter="url(#fx9tkunsdqdiy)" height="48" id="C_0001340793233843139195" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="101" y="171"/>
<rect fill="#FEFECE" filter="url(#fxha1k75pwh7e)" height="48" id="C_0001340793233843139195" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="101" y="171"/>
<ellipse cx="116" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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" lengthAdjust="spacingAndGlyphs" textLength="8" x="130" y="191.1543">A</text>
@@ -42,7 +42,7 @@
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="102" x2="206" y1="203" y2="203"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="102" x2="206" y1="211" y2="211"/>
<rect fill="#FEFECE" filter="url(#fx9tkunsdqdiy)" height="48" id="C_0001370808797762248850" style="stroke: #A80036; stroke-width: 1.5;" width="192" x="242" y="171"/>
<rect fill="#FEFECE" filter="url(#fxha1k75pwh7e)" height="48" id="C_0001370808797762248850" style="stroke: #A80036; stroke-width: 1.5;" width="192" x="242" y="171"/>
<ellipse cx="257" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="271" y="191.1543">A</text>
@@ -50,32 +50,32 @@
<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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L12" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L12" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fx9tkunsdqdiy)" height="86.4141" id="C_0000176239714450247310" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="25.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L12" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L12" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxha1k75pwh7e)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="26.5" x2="281.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L14" xlink:show="new" xlink:title="aint" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="36.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L14" xlink:show="new" xlink:title="aint" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="36.5" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L16" xlink:show="new" xlink:title="avector" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="36.5" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00009/t00009.cc#L16" xlink:show="new" xlink:title="avector" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="26.5" x2="281.5" y1="86.4141" y2="86.4141"/>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -39,9 +39,222 @@ class C {
public:
B<int> aintstring;
};
}
}
} // namespace t00010
} // namespace clanguml
```
## Generated UML diagrams
![t00010_class](./t00010_class.svg "Basic template instantiation")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00010::A<T,P>",
"id": "2222216618904514099",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "first",
"source_location": {
"file": "../../tests/t00010/t00010.cc",
"line": 9
},
"type": "T"
},
{
"access": "public",
"is_static": false,
"name": "second",
"source_location": {
"file": "../../tests/t00010/t00010.cc",
"line": 10
},
"type": "P"
}
],
"methods": [],
"name": "A",
"namespace": "clanguml::t00010",
"source_location": {
"file": "../../tests/t00010/t00010.cc",
"line": 7
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
},
{
"is_variadic": false,
"kind": "template_type",
"name": "P",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00010::A<T,std::string>",
"id": "1861520693741915300",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00010",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "T"
},
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "std::string"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00010::B<T>",
"id": "2303611426082708583",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "astring",
"source_location": {
"file": "../../tests/t00010/t00010.cc",
"line": 15
},
"type": "A<T,std::string>"
}
],
"methods": [],
"name": "B",
"namespace": "clanguml::t00010",
"source_location": {
"file": "../../tests/t00010/t00010.cc",
"line": 13
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00010::B<int>",
"id": "1498376939480949099",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "B",
"namespace": "clanguml::t00010",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "int"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00010::C",
"id": "1880966578968892571",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "aintstring",
"source_location": {
"file": "../../tests/t00010/t00010.cc",
"line": 20
},
"type": "B<int>"
}
],
"methods": [],
"name": "C",
"namespace": "clanguml::t00010",
"source_location": {
"file": "../../tests/t00010/t00010.cc",
"line": 18
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00010_class",
"relationships": [
{
"access": "public",
"destination": "2222216618904514099",
"source": "1861520693741915300",
"type": "instantiation"
},
{
"access": "public",
"destination": "1861520693741915300",
"label": "astring",
"source": "2303611426082708583",
"type": "aggregation"
},
{
"access": "public",
"destination": "2303611426082708583",
"source": "1498376939480949099",
"type": "instantiation"
},
{
"access": "public",
"destination": "1498376939480949099",
"label": "aintstring",
"source": "1880966578968892571",
"type": "aggregation"
}
],
"using_namespace": "clanguml::t00010"
}
```

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">
<defs>
<filter height="300%" id="fah4yo296y2a3" width="300%" x="-1" y="-1">
<filter height="300%" id="fdlh5vsxndsik" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fah4yo296y2a3)" height="73.6094" id="C_0002222216618904514099" style="stroke: #A80036; stroke-width: 1.5;" width="86" x="49.5" y="502"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fdlh5vsxndsik)" 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;"/>
<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>
@@ -18,22 +18,22 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L9" xlink:show="new" xlink:title="first" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="60.5" cy="545" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L9" xlink:show="new" xlink:title="first" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L10" xlink:show="new" xlink:title="second" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="60.5" cy="557.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L10" xlink:show="new" xlink:title="second" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="50.5" x2="134.5" y1="567.6094" y2="567.6094"/>
<rect fill="#FEFECE" filter="url(#fah4yo296y2a3)" height="48" id="C_0001861520693741915300" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="34" y="393"/>
<rect fill="#FEFECE" filter="url(#fdlh5vsxndsik)" 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;"/>
<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>
@@ -41,8 +41,8 @@
<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="433" y2="433"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L13" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L13" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fah4yo296y2a3)" 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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L13" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L13" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fdlh5vsxndsik)" 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;"/>
<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>
@@ -50,15 +50,15 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="17" cy="298" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L15" xlink:show="new" xlink:title="astring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="178" y1="307.8047" y2="307.8047"/>
<rect fill="#FEFECE" filter="url(#fah4yo296y2a3)" height="48" id="C_0001498376939480949099" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="62.5" y="146"/>
<rect fill="#FEFECE" filter="url(#fdlh5vsxndsik)" 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;"/>
<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>
@@ -66,18 +66,18 @@
<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="186" y2="186"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L18" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L18" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fah4yo296y2a3)" 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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L18" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L18" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fdlh5vsxndsik)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="27.5" x2="157.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L20" xlink:show="new" xlink:title="aintstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="37.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00010/t00010.cc#L20" xlink:show="new" xlink:title="aintstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="27.5" x2="157.5" y1="60.8047" y2="60.8047"/>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -19,8 +19,7 @@ diagrams:
File t00011.cc
```cpp
namespace external {
class C {
};
class C { };
}
namespace clanguml {
@@ -49,9 +48,150 @@ public:
void foo() { m_a->foo(); }
A *m_a;
};
}
}
} // namespace t00011
} // namespace clanguml
```
## Generated UML diagrams
![t00011_class](./t00011_class.svg "Friend relationships")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00011::D<T>",
"id": "1150639902748052276",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "value",
"source_location": {
"file": "../../tests/t00011/t00011.cc",
"line": 11
},
"type": "T"
}
],
"methods": [],
"name": "D",
"namespace": "clanguml::t00011",
"source_location": {
"file": "../../tests/t00011/t00011.cc",
"line": 10
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00011::A",
"id": "1420516952857803719",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "foo",
"parameters": [],
"type": "void"
}
],
"name": "A",
"namespace": "clanguml::t00011",
"source_location": {
"file": "../../tests/t00011/t00011.cc",
"line": 14
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00011::B",
"id": "1687427603952049829",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "m_a",
"source_location": {
"file": "../../tests/t00011/t00011.cc",
"line": 29
},
"type": "clanguml::t00011::A *"
}
],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "foo",
"parameters": [],
"type": "void"
}
],
"name": "B",
"namespace": "clanguml::t00011",
"source_location": {
"file": "../../tests/t00011/t00011.cc",
"line": 26
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00011_class",
"relationships": [
{
"access": "public",
"destination": "1687427603952049829",
"label": "<<friend>>",
"source": "1420516952857803719",
"type": "friendship"
},
{
"access": "public",
"destination": "1420516952857803719",
"label": "m_a",
"source": "1687427603952049829",
"type": "association"
}
],
"using_namespace": "clanguml::t00011"
}
```

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">
<defs>
<filter height="300%" id="f1qydn93pv24av" width="300%" x="-1" y="-1">
<filter height="300%" id="f10zzooq6lo9i" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L11" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L11" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qydn93pv24av)" height="60.8047" id="C_0001150639902748052276" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="6" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L10" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L10" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10zzooq6lo9i)" 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;"/>
<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>
@@ -18,16 +18,16 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L12" xlink:show="new" xlink:title="value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L12" xlink:show="new" xlink:title="value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</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/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L15" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L15" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qydn93pv24av)" height="60.8047" id="C_0001420516952857803719" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="116" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10zzooq6lo9i)" 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;"/>
<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>
@@ -36,18 +36,18 @@
<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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L27" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L27" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qydn93pv24av)" height="73.6094" id="C_0001687427603952049829" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="116" y="146"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L26" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L26" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10zzooq6lo9i)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="178" y2="178"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L30" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L30" xlink:show="new" xlink:title="m_a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L29" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L29" xlink:show="new" xlink:title="m_a" xlink:type="simple">
<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;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L30" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00011/t00011.cc#L30" xlink:show="new" xlink:title="m_a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00011/t00011.cc#L29" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="192.2104">m_a : A *</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="198.8047" y2="198.8047"/>

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 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="390px" preserveAspectRatio="none" style="width:1362px;height:390px;" version="1.1" viewBox="0 0 1362 390" width="1362px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="fqnz5cxabi2fa" width="300%" x="-1" y="-1">
<filter height="300%" id="fjb0wxnp461u1" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fqnz5cxabi2fa)" height="73.6094" id="C_0001773299890023132282" style="stroke: #A80036; stroke-width: 1.5;" width="184" x="822" y="306"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjb0wxnp461u1)" 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;"/>
<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>
@@ -18,23 +18,23 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L12" xlink:show="new" xlink:title="value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="830" y="346"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L12" xlink:show="new" xlink:title="value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L13" xlink:show="new" xlink:title="values" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="830" y="358.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L13" xlink:show="new" xlink:title="values" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</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/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L16" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L16" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fqnz5cxabi2fa)" height="60.8047" id="C_0002061171077567279746" style="stroke: #A80036; stroke-width: 1.5;" width="214" x="1134" y="312.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L16" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L16" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjb0wxnp461u1)" 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;"/>
<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>
@@ -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="352.5" y2="352.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L17" xlink:show="new" xlink:title="ints" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1142" y="360.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L17" xlink:show="new" xlink:title="ints" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L20" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L20" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fqnz5cxabi2fa)" height="60.8047" id="C_0000627809578407650629" style="stroke: #A80036; stroke-width: 1.5;" width="207" x="149.5" y="312.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L20" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L20" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjb0wxnp461u1)" 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;"/>
<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>
@@ -60,14 +60,14 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L21" xlink:show="new" xlink:title="ints" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="157.5" y="360.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L21" xlink:show="new" xlink:title="ints" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<rect fill="#FEFECE" filter="url(#fqnz5cxabi2fa)" height="48" id="C_0000286972398942005457" style="stroke: #A80036; stroke-width: 1.5;" width="158" x="758" y="197"/>
<rect fill="#FEFECE" filter="url(#fjb0wxnp461u1)" height="48" id="C_0000286972398942005457" style="stroke: #A80036; stroke-width: 1.5;" width="158" x="758" y="197"/>
<ellipse cx="773" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="787" y="217.1543">A</text>
@@ -75,7 +75,7 @@
<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="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="759" x2="915" y1="237" y2="237"/>
<rect fill="#FEFECE" filter="url(#fqnz5cxabi2fa)" height="48" id="C_0000299466181098300963" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="951.5" y="197"/>
<rect fill="#FEFECE" filter="url(#fjb0wxnp461u1)" height="48" id="C_0000299466181098300963" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="951.5" y="197"/>
<ellipse cx="966.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="980.5" y="217.1543">A</text>
@@ -83,7 +83,7 @@
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="952.5" x2="1107.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="952.5" x2="1107.5" y1="237" y2="237"/>
<rect fill="#FEFECE" filter="url(#fqnz5cxabi2fa)" height="48" id="C_0000489063277971613593" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="1144" y="197"/>
<rect fill="#FEFECE" filter="url(#fjb0wxnp461u1)" height="48" id="C_0000489063277971613593" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="1144" y="197"/>
<ellipse cx="1159" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1173" y="217.1543">B</text>
@@ -91,7 +91,7 @@
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1145" x2="1219" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1145" x2="1219" y1="237" y2="237"/>
<rect fill="#FEFECE" filter="url(#fqnz5cxabi2fa)" height="48" id="C_0000014232362483200599" style="stroke: #A80036; stroke-width: 1.5;" width="88" x="1255" y="197"/>
<rect fill="#FEFECE" filter="url(#fjb0wxnp461u1)" height="48" id="C_0000014232362483200599" style="stroke: #A80036; stroke-width: 1.5;" width="88" x="1255" y="197"/>
<ellipse cx="1270" 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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1284" y="217.1543">B</text>
@@ -99,7 +99,7 @@
<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>
<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="1256" x2="1342" y1="237" y2="237"/>
<rect fill="#FEFECE" filter="url(#fqnz5cxabi2fa)" height="48" id="C_0001478239414632239754" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="6" y="197"/>
<rect fill="#FEFECE" filter="url(#fjb0wxnp461u1)" 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>
@@ -107,50 +107,50 @@
<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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L24" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L24" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fqnz5cxabi2fa)" height="112.0234" id="C_0000559263385732885469" style="stroke: #A80036; stroke-width: 1.5;" width="493" x="783.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L24" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L24" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjb0wxnp461u1)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="784.5" x2="1275.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L25" xlink:show="new" xlink:title="a1" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L25" xlink:show="new" xlink:title="a1" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L26" xlink:show="new" xlink:title="a2" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="60.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L26" xlink:show="new" xlink:title="a2" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L28" xlink:show="new" xlink:title="b1" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="73.6094"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L28" xlink:show="new" xlink:title="b1" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L29" xlink:show="new" xlink:title="b2" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="86.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L29" xlink:show="new" xlink:title="b2" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L33" xlink:show="new" xlink:title="c1" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="99.2188"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00012/t00012.cc#L33" xlink:show="new" xlink:title="c1" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</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(#fqnz5cxabi2fa)" 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(#fjb0wxnp461u1)" 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>
<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: 31 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">
<defs>
<filter height="300%" id="f1f6kw1lpwh1yo" width="300%" x="-1" y="-1">
<filter height="300%" id="f1qf9dcu3caogw" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L7" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L7" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="60.8047" id="C_0000952770730316239752" style="stroke: #A80036; stroke-width: 1.5;" width="91" x="161" y="440.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L7" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L7" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" 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;"/>
<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>
@@ -18,15 +18,15 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L8" xlink:show="new" xlink:title="f" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="172" cy="483.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L8" xlink:show="new" xlink:title="f" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="162" x2="251" y1="493.3047" y2="493.3047"/>
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="48" id="C_0002304215469403389354" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="233.5" y="312"/>
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" 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;"/>
<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>
@@ -34,70 +34,70 @@
<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="352" y2="352"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" 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/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="370" x2="427" y1="337.5" y2="337.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L15" xlink:show="new" xlink:title="a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="380" cy="348.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L15" xlink:show="new" xlink:title="a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</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/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L18" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L18" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="60.8047" id="C_0001177487653597650440" style="stroke: #A80036; stroke-width: 1.5;" width="59" x="463" y="305.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L18" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L18" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="464" x2="521" y1="337.5" y2="337.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L19" xlink:show="new" xlink:title="b" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="474" cy="348.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L19" xlink:show="new" xlink:title="b" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</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/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L22" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L22" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="60.8047" id="C_0001028245818073128358" style="stroke: #A80036; stroke-width: 1.5;" width="58" x="557.5" y="305.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L22" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L22" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="558.5" x2="614.5" y1="337.5" y2="337.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L23" xlink:show="new" xlink:title="c" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="568.5" cy="348.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L23" xlink:show="new" xlink:title="c" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</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/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="73.6094" id="C_0000409373870621931875" style="stroke: #A80036; stroke-width: 1.5;" width="121" x="6" y="299"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="126" y1="331" y2="331"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L29" xlink:show="new" xlink:title="d" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L29" xlink:show="new" xlink:title="d" xlink:type="simple">
<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;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L29" xlink:show="new" xlink:title="d" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="345.2104">d : int</text>
</a>
<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;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="95" x="26" y="366.0151">print(R * r) : void</text>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L33" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L33" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="60.8047" id="C_0000864055993755439230" style="stroke: #A80036; stroke-width: 1.5;" width="52" x="795.5" y="440.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L33" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L33" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" 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;"/>
<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>
@@ -105,16 +105,16 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L34" xlink:show="new" xlink:title="e" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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"/>
<ellipse cx="806.5" cy="483.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L34" xlink:show="new" xlink:title="e" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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>
</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/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L37" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L37" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="73.6094" id="C_0000205927019127027617" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="950.5" y="434"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L37" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L37" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" 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;"/>
<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>
@@ -122,22 +122,22 @@
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L38" xlink:show="new" xlink:title="g" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="472"/>
<ellipse cx="961.5" cy="477" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L38" xlink:show="new" xlink:title="g" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="26" x="970.5" y="480.2104">g : T</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L39" xlink:show="new" xlink:title="args" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="484.8047"/>
<ellipse cx="961.5" cy="489.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L39" xlink:show="new" xlink:title="args" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="148" x="970.5" y="493.0151">args : std::tuple&lt;Args...&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="951.5" x2="1123.5" y1="499.6094" y2="499.6094"/>
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="48" id="C_0001977486318799565722" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="791.5" y="312"/>
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" 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;"/>
<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>
@@ -145,7 +145,7 @@
<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="352" y2="352"/>
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="48" id="C_0001526733274613822014" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="958" y="312"/>
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" height="48" id="C_0001526733274613822014" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="958" y="312"/>
<ellipse cx="973" cy="328" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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" lengthAdjust="spacingAndGlyphs" textLength="9" x="987" y="332.1543">G</text>
@@ -153,7 +153,7 @@
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="959" x2="1116" y1="344" y2="344"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="959" x2="1116" y1="352" y2="352"/>
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="48" id="C_0000531523220915557686" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="650.5" y="312"/>
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" height="48" id="C_0000531523220915557686" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="650.5" y="312"/>
<ellipse cx="665.5" cy="328" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="679.5" y="332.1543">E</text>
@@ -161,25 +161,25 @@
<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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L43" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L43" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f6kw1lpwh1yo)" height="214.4609" id="C_0002198686676355573844" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="371.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L43" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L43" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qf9dcu3caogw)" 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;"/>
<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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="372.5" x2="612.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L60" xlink:show="new" xlink:title="gintstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="46"/>
<ellipse cx="382.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L60" xlink:show="new" xlink:title="gintstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="54.2104">gintstring : G&lt;int,float,std::string&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L63" xlink:show="new" xlink:title="estring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="58.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="379.5" y="60.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00013/t00013.cc#L63" xlink:show="new" xlink:title="estring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="67.0151">estring : E&lt;std::string&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="372.5" x2="612.5" y1="73.6094" y2="73.6094"/>
@@ -202,9 +202,9 @@
<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="101" x="391.5" y="203.062">get_e(E&lt;T&gt; e) : T</text>
<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="143" x="391.5" y="215.8667">get_f(const F&lt;T&gt; &amp; f) : T</text>
<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;"/>
<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;"/>

Before

Width:  |  Height:  |  Size: 41 KiB

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="1078px" preserveAspectRatio="none" style="width:1100px;height:1078px;" version="1.1" viewBox="0 0 1100 1078" width="1100px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="fcs9kkx4b33nz" width="300%" x="-1" y="-1">
<filter height="300%" id="f13ienfch2zjpq" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L21" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L21" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="73.6094" id="C_0000765890579167335652" style="stroke: #A80036; stroke-width: 1.5;" width="62" x="1024" y="561"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L21" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L21" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="73.6094" id="C_0000765890579167335652" style="stroke: #A80036; stroke-width: 1.5;" width="62" x="1024" y="561"/>
<ellipse cx="1039" cy="577" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1041.9688,582.6406 Q1041.3906,582.9375 1040.75,583.0781 Q1040.1094,583.2344 1039.4063,583.2344 Q1036.9063,583.2344 1035.5781,581.5938 Q1034.2656,579.9375 1034.2656,576.8125 Q1034.2656,573.6875 1035.5781,572.0313 Q1036.9063,570.375 1039.4063,570.375 Q1040.1094,570.375 1040.75,570.5313 Q1041.4063,570.6875 1041.9688,570.9844 L1041.9688,573.7031 Q1041.3438,573.125 1040.75,572.8594 Q1040.1563,572.5781 1039.5313,572.5781 Q1038.1875,572.5781 1037.5,573.6563 Q1036.8125,574.7188 1036.8125,576.8125 Q1036.8125,578.9063 1037.5,579.9844 Q1038.1875,581.0469 1039.5313,581.0469 Q1040.1563,581.0469 1040.75,580.7813 Q1041.3438,580.5 1041.9688,579.9219 L1041.9688,582.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="1053" y="581.1543">A</text>
@@ -18,37 +18,37 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="18" x="1070" y="570.1387">T,P</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1085" y1="593" y2="593"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L22" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L22" xlink:show="new" xlink:title="t" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L22" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L22" xlink:show="new" xlink:title="t" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="1030" y="599"/>
<ellipse cx="1035" cy="604" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L22" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L22" xlink:show="new" xlink:title="t" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L22" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L22" xlink:show="new" xlink:title="t" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="1044" y="607.2104">t : T</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L23" target="_top" title="p" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L23" xlink:show="new" xlink:title="p" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L23" target="_top" title="p" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L23" xlink:show="new" xlink:title="p" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="1030" y="611.8047"/>
<ellipse cx="1035" cy="616.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L23" target="_top" title="p" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L23" xlink:show="new" xlink:title="p" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L23" target="_top" title="p" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L23" xlink:show="new" xlink:title="p" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="1044" y="620.0151">p : P</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1025" x2="1085" y1="626.6094" y2="626.6094"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L26" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L26" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="60.8047" id="C_0000934136012292043506" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="481.5" y="65.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L26" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L26" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="60.8047" id="C_0000934136012292043506" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="481.5" y="65.5"/>
<ellipse cx="536.75" cy="81.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M539.7188,87.1406 Q539.1406,87.4375 538.5,87.5781 Q537.8594,87.7344 537.1563,87.7344 Q534.6563,87.7344 533.3281,86.0938 Q532.0156,84.4375 532.0156,81.3125 Q532.0156,78.1875 533.3281,76.5313 Q534.6563,74.875 537.1563,74.875 Q537.8594,74.875 538.5,75.0313 Q539.1563,75.1875 539.7188,75.4844 L539.7188,78.2031 Q539.0938,77.625 538.5,77.3594 Q537.9063,77.0781 537.2813,77.0781 Q535.9375,77.0781 535.25,78.1563 Q534.5625,79.2188 534.5625,81.3125 Q534.5625,83.4063 535.25,84.4844 Q535.9375,85.5469 537.2813,85.5469 Q537.9063,85.5469 538.5,85.2813 Q539.0938,85 539.7188,84.4219 L539.7188,87.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="557.25" y="85.6543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="482.5" x2="607.5" y1="97.5" y2="97.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L27" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L27" xlink:show="new" xlink:title="value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L27" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L27" xlink:show="new" xlink:title="value" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="487.5" y="103.5"/>
<ellipse cx="492.5" cy="108.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L27" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L27" xlink:show="new" xlink:title="value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L27" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L27" xlink:show="new" xlink:title="value" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="501.5" y="111.7104">value : std::string</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="482.5" x2="607.5" y1="118.3047" y2="118.3047"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0002186387853087008570" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="789" y="832"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0002186387853087008570" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="789" y="832"/>
<ellipse cx="804" cy="848" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M806.9688,853.6406 Q806.3906,853.9375 805.75,854.0781 Q805.1094,854.2344 804.4063,854.2344 Q801.9063,854.2344 800.5781,852.5938 Q799.2656,850.9375 799.2656,847.8125 Q799.2656,844.6875 800.5781,843.0313 Q801.9063,841.375 804.4063,841.375 Q805.1094,841.375 805.75,841.5313 Q806.4063,841.6875 806.9688,841.9844 L806.9688,844.7031 Q806.3438,844.125 805.75,843.8594 Q805.1563,843.5781 804.5313,843.5781 Q803.1875,843.5781 802.5,844.6563 Q801.8125,845.7188 801.8125,847.8125 Q801.8125,849.9063 802.5,850.9844 Q803.1875,852.0469 804.5313,852.0469 Q805.1563,852.0469 805.75,851.7813 Q806.3438,851.5 806.9688,850.9219 L806.9688,853.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="818" y="852.1543">A</text>
@@ -56,7 +56,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="73" x="835" y="841.1387">T,std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="790" x2="905" y1="864" y2="864"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="790" x2="905" y1="872" y2="872"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0000947292733740993297" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="732" y="604"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0000947292733740993297" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="732" y="604"/>
<ellipse cx="747" cy="620" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M749.9688,625.6406 Q749.3906,625.9375 748.75,626.0781 Q748.1094,626.2344 747.4063,626.2344 Q744.9063,626.2344 743.5781,624.5938 Q742.2656,622.9375 742.2656,619.8125 Q742.2656,616.6875 743.5781,615.0313 Q744.9063,613.375 747.4063,613.375 Q748.1094,613.375 748.75,613.5313 Q749.4063,613.6875 749.9688,613.9844 L749.9688,616.7031 Q749.3438,616.125 748.75,615.8594 Q748.1563,615.5781 747.5313,615.5781 Q746.1875,615.5781 745.5,616.6563 Q744.8125,617.7188 744.8125,619.8125 Q744.8125,621.9063 745.5,622.9844 Q746.1875,624.0469 747.5313,624.0469 Q748.1563,624.0469 748.75,623.7813 Q749.3438,623.5 749.9688,622.9219 L749.9688,625.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="761" y="624.1543">A</text>
@@ -64,7 +64,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="187" x="778" y="613.1387">T,std::unique_ptr&lt;std::string&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="733" x2="962" y1="636" y2="636"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="733" x2="962" y1="644" y2="644"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0001700006390494465667" style="stroke: #A80036; stroke-width: 1.5;" width="82" x="806.5" y="303"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0001700006390494465667" style="stroke: #A80036; stroke-width: 1.5;" width="82" x="806.5" y="303"/>
<ellipse cx="821.5" cy="319" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M824.4688,324.6406 Q823.8906,324.9375 823.25,325.0781 Q822.6094,325.2344 821.9063,325.2344 Q819.4063,325.2344 818.0781,323.5938 Q816.7656,321.9375 816.7656,318.8125 Q816.7656,315.6875 818.0781,314.0313 Q819.4063,312.375 821.9063,312.375 Q822.6094,312.375 823.25,312.5313 Q823.9063,312.6875 824.4688,312.9844 L824.4688,315.7031 Q823.8438,315.125 823.25,314.8594 Q822.6563,314.5781 822.0313,314.5781 Q820.6875,314.5781 820,315.6563 Q819.3125,316.7188 819.3125,318.8125 Q819.3125,320.9063 820,321.9844 Q820.6875,323.0469 822.0313,323.0469 Q822.6563,323.0469 823.25,322.7813 Q823.8438,322.5 824.4688,321.9219 L824.4688,324.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="835.5" y="323.1543">A</text>
@@ -72,7 +72,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="38" x="852.5" y="312.1387">long,T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="807.5" x2="887.5" y1="335" y2="335"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="807.5" x2="887.5" y1="343" y2="343"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0002017665567517853203" style="stroke: #A80036; stroke-width: 1.5;" width="98" x="798.5" y="521"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0002017665567517853203" style="stroke: #A80036; stroke-width: 1.5;" width="98" x="798.5" y="521"/>
<ellipse cx="813.5" cy="537" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M816.4688,542.6406 Q815.8906,542.9375 815.25,543.0781 Q814.6094,543.2344 813.9063,543.2344 Q811.4063,543.2344 810.0781,541.5938 Q808.7656,539.9375 808.7656,536.8125 Q808.7656,533.6875 810.0781,532.0313 Q811.4063,530.375 813.9063,530.375 Q814.6094,530.375 815.25,530.5313 Q815.9063,530.6875 816.4688,530.9844 L816.4688,533.7031 Q815.8438,533.125 815.25,532.8594 Q814.6563,532.5781 814.0313,532.5781 Q812.6875,532.5781 812,533.6563 Q811.3125,534.7188 811.3125,536.8125 Q811.3125,538.9063 812,539.9844 Q812.6875,541.0469 814.0313,541.0469 Q814.6563,541.0469 815.25,540.7813 Q815.8438,540.5 816.4688,539.9219 L816.4688,542.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="827.5" y="541.1543">A</text>
@@ -80,7 +80,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="54" x="844.5" y="530.1387">double,T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="799.5" x2="895.5" y1="553" y2="553"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="799.5" x2="895.5" y1="561" y2="561"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0000906557320263235873" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="503" y="272"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0000906557320263235873" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="503" y="272"/>
<ellipse cx="518" cy="288" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M520.9688,293.6406 Q520.3906,293.9375 519.75,294.0781 Q519.1094,294.2344 518.4063,294.2344 Q515.9063,294.2344 514.5781,292.5938 Q513.2656,290.9375 513.2656,287.8125 Q513.2656,284.6875 514.5781,283.0313 Q515.9063,281.375 518.4063,281.375 Q519.1094,281.375 519.75,281.5313 Q520.4063,281.6875 520.9688,281.9844 L520.9688,284.7031 Q520.3438,284.125 519.75,283.8594 Q519.1563,283.5781 518.5313,283.5781 Q517.1875,283.5781 516.5,284.6563 Q515.8125,285.7188 515.8125,287.8125 Q515.8125,289.9063 516.5,290.9844 Q517.1875,292.0469 518.5313,292.0469 Q519.1563,292.0469 519.75,291.7813 Q520.3438,291.5 520.9688,290.9219 L520.9688,293.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="532" y="292.1543">A</text>
@@ -88,7 +88,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="40" x="549" y="281.1387">long,U</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="504" x2="586" y1="304" y2="304"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="504" x2="586" y1="312" y2="312"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0000378898020828430636" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="494" y="355"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0000378898020828430636" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="494" y="355"/>
<ellipse cx="509" cy="371" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M511.9688,376.6406 Q511.3906,376.9375 510.75,377.0781 Q510.1094,377.2344 509.4063,377.2344 Q506.9063,377.2344 505.5781,375.5938 Q504.2656,373.9375 504.2656,370.8125 Q504.2656,367.6875 505.5781,366.0313 Q506.9063,364.375 509.4063,364.375 Q510.1094,364.375 510.75,364.5313 Q511.4063,364.6875 511.9688,364.9844 L511.9688,367.7031 Q511.3438,367.125 510.75,366.8594 Q510.1563,366.5781 509.5313,366.5781 Q508.1875,366.5781 507.5,367.6563 Q506.8125,368.7188 506.8125,370.8125 Q506.8125,372.9063 507.5,373.9844 Q508.1875,375.0469 509.5313,375.0469 Q510.1563,375.0469 510.75,374.7813 Q511.3438,374.5 511.9688,373.9219 L511.9688,376.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="523" y="375.1543">A</text>
@@ -96,7 +96,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="58" x="540" y="364.1387">long,bool</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="595" y1="387" y2="387"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="495" x2="595" y1="395" y2="395"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0002082013375525130414" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="486" y="521"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0002082013375525130414" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="486" y="521"/>
<ellipse cx="501" cy="537" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M503.9688,542.6406 Q503.3906,542.9375 502.75,543.0781 Q502.1094,543.2344 501.4063,543.2344 Q498.9063,543.2344 497.5781,541.5938 Q496.2656,539.9375 496.2656,536.8125 Q496.2656,533.6875 497.5781,532.0313 Q498.9063,530.375 501.4063,530.375 Q502.1094,530.375 502.75,530.5313 Q503.4063,530.6875 503.9688,530.9844 L503.9688,533.7031 Q503.3438,533.125 502.75,532.8594 Q502.1563,532.5781 501.5313,532.5781 Q500.1875,532.5781 499.5,533.6563 Q498.8125,534.7188 498.8125,536.8125 Q498.8125,538.9063 499.5,539.9844 Q500.1875,541.0469 501.5313,541.0469 Q502.1563,541.0469 502.75,540.7813 Q503.3438,540.5 503.9688,539.9219 L503.9688,542.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="515" y="541.1543">A</text>
@@ -104,7 +104,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="74" x="532" y="530.1387">double,bool</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="487" x2="603" y1="553" y2="553"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="487" x2="603" y1="561" y2="561"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0000051978493292659230" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="493.5" y="189"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0000051978493292659230" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="493.5" y="189"/>
<ellipse cx="508.5" cy="205" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M511.4688,210.6406 Q510.8906,210.9375 510.25,211.0781 Q509.6094,211.2344 508.9063,211.2344 Q506.4063,211.2344 505.0781,209.5938 Q503.7656,207.9375 503.7656,204.8125 Q503.7656,201.6875 505.0781,200.0313 Q506.4063,198.375 508.9063,198.375 Q509.6094,198.375 510.25,198.5313 Q510.9063,198.6875 511.4688,198.9844 L511.4688,201.7031 Q510.8438,201.125 510.25,200.8594 Q509.6563,200.5781 509.0313,200.5781 Q507.6875,200.5781 507,201.6563 Q506.3125,202.7188 506.3125,204.8125 Q506.3125,206.9063 507,207.9844 Q507.6875,209.0469 509.0313,209.0469 Q509.6563,209.0469 510.25,208.7813 Q510.8438,208.5 511.4688,207.9219 L511.4688,210.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="522.5" y="209.1543">A</text>
@@ -112,7 +112,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="59" x="539.5" y="198.1387">long,float</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="494.5" x2="595.5" y1="221" y2="221"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="494.5" x2="595.5" y1="229" y2="229"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0000197769253782961588" style="stroke: #A80036; stroke-width: 1.5;" width="119" x="485.5" y="438"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0000197769253782961588" style="stroke: #A80036; stroke-width: 1.5;" width="119" x="485.5" y="438"/>
<ellipse cx="500.5" cy="454" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M503.4688,459.6406 Q502.8906,459.9375 502.25,460.0781 Q501.6094,460.2344 500.9063,460.2344 Q498.4063,460.2344 497.0781,458.5938 Q495.7656,456.9375 495.7656,453.8125 Q495.7656,450.6875 497.0781,449.0313 Q498.4063,447.375 500.9063,447.375 Q501.6094,447.375 502.25,447.5313 Q502.9063,447.6875 503.4688,447.9844 L503.4688,450.7031 Q502.8438,450.125 502.25,449.8594 Q501.6563,449.5781 501.0313,449.5781 Q499.6875,449.5781 499,450.6563 Q498.3125,451.7188 498.3125,453.8125 Q498.3125,455.9063 499,456.9844 Q499.6875,458.0469 501.0313,458.0469 Q501.6563,458.0469 502.25,457.7813 Q502.8438,457.5 503.4688,456.9219 L503.4688,459.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="514.5" y="458.1543">A</text>
@@ -120,7 +120,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="75" x="531.5" y="447.1387">double,float</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="486.5" x2="603.5" y1="470" y2="470"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="486.5" x2="603.5" y1="478" y2="478"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0000895940711566401184" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="476.5" y="1019"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0000895940711566401184" style="stroke: #A80036; stroke-width: 1.5;" width="137" x="476.5" y="1019"/>
<ellipse cx="491.5" cy="1035" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M494.4688,1040.6406 Q493.8906,1040.9375 493.25,1041.0781 Q492.6094,1041.2344 491.9063,1041.2344 Q489.4063,1041.2344 488.0781,1039.5938 Q486.7656,1037.9375 486.7656,1034.8125 Q486.7656,1031.6875 488.0781,1030.0313 Q489.4063,1028.375 491.9063,1028.375 Q492.6094,1028.375 493.25,1028.5313 Q493.9063,1028.6875 494.4688,1028.9844 L494.4688,1031.7031 Q493.8438,1031.125 493.25,1030.8594 Q492.6563,1030.5781 492.0313,1030.5781 Q490.6875,1030.5781 490,1031.6563 Q489.3125,1032.7188 489.3125,1034.8125 Q489.3125,1036.9063 490,1037.9844 Q490.6875,1039.0469 492.0313,1039.0469 Q492.6563,1039.0469 493.25,1038.7813 Q493.8438,1038.5 494.4688,1037.9219 L494.4688,1040.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="505.5" y="1039.1543">A</text>
@@ -128,7 +128,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="93" x="522.5" y="1028.1387">bool,std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="477.5" x2="612.5" y1="1051" y2="1051"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="477.5" x2="612.5" y1="1059" y2="1059"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0001751732625010742161" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="419" y="604"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0001751732625010742161" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="419" y="604"/>
<ellipse cx="434" cy="620" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M436.9688,625.6406 Q436.3906,625.9375 435.75,626.0781 Q435.1094,626.2344 434.4063,626.2344 Q431.9063,626.2344 430.5781,624.5938 Q429.2656,622.9375 429.2656,619.8125 Q429.2656,616.6875 430.5781,615.0313 Q431.9063,613.375 434.4063,613.375 Q435.1094,613.375 435.75,613.5313 Q436.4063,613.6875 436.9688,613.9844 L436.9688,616.7031 Q436.3438,616.125 435.75,615.8594 Q435.1563,615.5781 434.5313,615.5781 Q433.1875,615.5781 432.5,616.6563 Q431.8125,617.7188 431.8125,619.8125 Q431.8125,621.9063 432.5,622.9844 Q433.1875,624.0469 434.5313,624.0469 Q435.1563,624.0469 435.75,623.7813 Q436.3438,623.5 436.9688,622.9219 L436.9688,625.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="448" y="624.1543">A</text>
@@ -136,7 +136,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="208" x="465" y="613.1387">float,std::unique_ptr&lt;std::string&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="420" x2="670" y1="636" y2="636"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="420" x2="670" y1="644" y2="644"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0000887121441210847583" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="482" y="770"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0000887121441210847583" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="482" y="770"/>
<ellipse cx="497" cy="786" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M499.9688,791.6406 Q499.3906,791.9375 498.75,792.0781 Q498.1094,792.2344 497.4063,792.2344 Q494.9063,792.2344 493.5781,790.5938 Q492.2656,788.9375 492.2656,785.8125 Q492.2656,782.6875 493.5781,781.0313 Q494.9063,779.375 497.4063,779.375 Q498.1094,779.375 498.75,779.5313 Q499.4063,779.6875 499.9688,779.9844 L499.9688,782.7031 Q499.3438,782.125 498.75,781.8594 Q498.1563,781.5781 497.5313,781.5781 Q496.1875,781.5781 495.5,782.6563 Q494.8125,783.7188 494.8125,785.8125 Q494.8125,787.9063 495.5,788.9844 Q496.1875,790.0469 497.5313,790.0469 Q498.1563,790.0469 498.75,789.7813 Q499.3438,789.5 499.9688,788.9219 L499.9688,791.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="511" y="790.1543">A</text>
@@ -144,7 +144,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="82" x="528" y="779.1387">int,std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="483" x2="607" y1="802" y2="802"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="483" x2="607" y1="810" y2="810"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0001119452495635561975" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="459" y="853"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0001119452495635561975" style="stroke: #A80036; stroke-width: 1.5;" width="172" x="459" y="853"/>
<ellipse cx="474" cy="869" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M476.9688,874.6406 Q476.3906,874.9375 475.75,875.0781 Q475.1094,875.2344 474.4063,875.2344 Q471.9063,875.2344 470.5781,873.5938 Q469.2656,871.9375 469.2656,868.8125 Q469.2656,865.6875 470.5781,864.0313 Q471.9063,862.375 474.4063,862.375 Q475.1094,862.375 475.75,862.5313 Q476.4063,862.6875 476.9688,862.9844 L476.9688,865.7031 Q476.3438,865.125 475.75,864.8594 Q475.1563,864.5781 474.5313,864.5781 Q473.1875,864.5781 472.5,865.6563 Q471.8125,866.7188 471.8125,868.8125 Q471.8125,870.9063 472.5,871.9844 Q473.1875,873.0469 474.5313,873.0469 Q475.1563,873.0469 475.75,872.7813 Q476.3438,872.5 476.9688,871.9219 L476.9688,874.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="488" y="873.1543">A</text>
@@ -152,7 +152,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="128" x="505" y="862.1387">std::string,std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="460" x2="630" y1="885" y2="885"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="460" x2="630" y1="893" y2="893"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0000640294848487966238" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="476" y="936"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0000640294848489463071" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="476" y="936"/>
<ellipse cx="491" cy="952" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M493.9688,957.6406 Q493.3906,957.9375 492.75,958.0781 Q492.1094,958.2344 491.4063,958.2344 Q488.9063,958.2344 487.5781,956.5938 Q486.2656,954.9375 486.2656,951.8125 Q486.2656,948.6875 487.5781,947.0313 Q488.9063,945.375 491.4063,945.375 Q492.1094,945.375 492.75,945.5313 Q493.4063,945.6875 493.9688,945.9844 L493.9688,948.7031 Q493.3438,948.125 492.75,947.8594 Q492.1563,947.5781 491.5313,947.5781 Q490.1875,947.5781 489.5,948.6563 Q488.8125,949.7188 488.8125,951.8125 Q488.8125,953.9063 489.5,954.9844 Q490.1875,956.0469 491.5313,956.0469 Q492.1563,956.0469 492.75,955.7813 Q493.3438,955.5 493.9688,954.9219 L493.9688,957.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="505" y="956.1543">A</text>
@@ -160,7 +160,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="94" x="522" y="945.1387">char,std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="477" x2="613" y1="968" y2="968"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="477" x2="613" y1="976" y2="976"/>
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="48" id="C_0000139599686497658861" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="465.5" y="687"/>
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="48" id="C_0000139599686499155694" style="stroke: #A80036; stroke-width: 1.5;" width="159" x="465.5" y="687"/>
<ellipse cx="480.5" cy="703" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M483.4688,708.6406 Q482.8906,708.9375 482.25,709.0781 Q481.6094,709.2344 480.9063,709.2344 Q478.4063,709.2344 477.0781,707.5938 Q475.7656,705.9375 475.7656,702.8125 Q475.7656,699.6875 477.0781,698.0313 Q478.4063,696.375 480.9063,696.375 Q481.6094,696.375 482.25,696.5313 Q482.9063,696.6875 483.4688,696.9844 L483.4688,699.7031 Q482.8438,699.125 482.25,698.8594 Q481.6563,698.5781 481.0313,698.5781 Q479.6875,698.5781 479,699.6563 Q478.3125,700.7188 478.3125,702.8125 Q478.3125,704.9063 479,705.9844 Q479.6875,707.0469 481.0313,707.0469 Q481.6563,707.0469 482.25,706.7813 Q482.8438,706.5 483.4688,705.9219 L483.4688,708.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="494.5" y="707.1543">A</text>
@@ -168,116 +168,116 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="115" x="511.5" y="696.1387">wchar_t,std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="466.5" x2="623.5" y1="719" y2="719"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="466.5" x2="623.5" y1="727" y2="727"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L55" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L55" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fcs9kkx4b33nz)" height="240.0703" id="C_0001192822659863756768" style="stroke: #A80036; stroke-width: 1.5;" width="259" x="6" y="379"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L55" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L55" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f13ienfch2zjpq)" height="240.0703" id="C_0001192822659863756768" style="stroke: #A80036; stroke-width: 1.5;" width="259" x="6" y="379"/>
<ellipse cx="127.25" cy="395" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M130.2188,400.6406 Q129.6406,400.9375 129,401.0781 Q128.3594,401.2344 127.6563,401.2344 Q125.1563,401.2344 123.8281,399.5938 Q122.5156,397.9375 122.5156,394.8125 Q122.5156,391.6875 123.8281,390.0313 Q125.1563,388.375 127.6563,388.375 Q128.3594,388.375 129,388.5313 Q129.6563,388.6875 130.2188,388.9844 L130.2188,391.7031 Q129.5938,391.125 129,390.8594 Q128.4063,390.5781 127.7813,390.5781 Q126.4375,390.5781 125.75,391.6563 Q125.0625,392.7188 125.0625,394.8125 Q125.0625,396.9063 125.75,397.9844 Q126.4375,399.0469 127.7813,399.0469 Q128.4063,399.0469 129,398.7813 Q129.5938,398.5 130.2188,397.9219 L130.2188,400.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="147.75" y="399.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="264" y1="411" y2="411"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L58" target="_top" title="bapair" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L58" xlink:show="new" xlink:title="bapair" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L58" target="_top" title="bapair" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L58" xlink:show="new" xlink:title="bapair" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="417"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="419"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L58" target="_top" title="bapair" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L58" xlink:show="new" xlink:title="bapair" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L58" target="_top" title="bapair" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L58" xlink:show="new" xlink:title="bapair" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="26" y="425.2104">bapair : PairPairBA&lt;bool&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L60" target="_top" title="abool" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L60" xlink:show="new" xlink:title="abool" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L60" target="_top" title="abool" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L60" xlink:show="new" xlink:title="abool" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="429.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="431.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L60" target="_top" title="abool" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L60" xlink:show="new" xlink:title="abool" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L60" target="_top" title="abool" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L60" xlink:show="new" xlink:title="abool" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="26" y="438.0151">abool : APtr&lt;bool&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L61" target="_top" title="aboolfloat" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L61" xlink:show="new" xlink:title="aboolfloat" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L61" target="_top" title="aboolfloat" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L61" xlink:show="new" xlink:title="aboolfloat" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="442.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="444.6094"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L61" target="_top" title="aboolfloat" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L61" xlink:show="new" xlink:title="aboolfloat" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L61" target="_top" title="aboolfloat" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L61" xlink:show="new" xlink:title="aboolfloat" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="26" y="450.8198">aboolfloat : AAPtr&lt;bool,float&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L62" target="_top" title="afloat" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L62" xlink:show="new" xlink:title="afloat" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L62" target="_top" title="afloat" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L62" xlink:show="new" xlink:title="afloat" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="455.4141"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="457.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L62" target="_top" title="afloat" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L62" xlink:show="new" xlink:title="afloat" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L62" target="_top" title="afloat" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L62" xlink:show="new" xlink:title="afloat" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="26" y="463.6245">afloat : ASharedPtr&lt;float&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L63" target="_top" title="boolstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L63" xlink:show="new" xlink:title="boolstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L63" target="_top" title="boolstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L63" xlink:show="new" xlink:title="boolstring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="468.2188"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="470.2188"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L63" target="_top" title="boolstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L63" xlink:show="new" xlink:title="boolstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L63" target="_top" title="boolstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L63" xlink:show="new" xlink:title="boolstring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="181" x="26" y="476.4292">boolstring : A&lt;bool,std::string&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L64" target="_top" title="floatstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L64" xlink:show="new" xlink:title="floatstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L64" target="_top" title="floatstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L64" xlink:show="new" xlink:title="floatstring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="481.0234"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="483.0234"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L64" target="_top" title="floatstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L64" xlink:show="new" xlink:title="floatstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L64" target="_top" title="floatstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L64" xlink:show="new" xlink:title="floatstring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="26" y="489.2339">floatstring : AStringPtr&lt;float&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L65" target="_top" title="intstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L65" xlink:show="new" xlink:title="intstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L65" target="_top" title="intstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L65" xlink:show="new" xlink:title="intstring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="493.8281"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="495.8281"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L65" target="_top" title="intstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L65" xlink:show="new" xlink:title="intstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L65" target="_top" title="intstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L65" xlink:show="new" xlink:title="intstring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="26" y="502.0386">intstring : AIntString</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L66" target="_top" title="stringstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L66" xlink:show="new" xlink:title="stringstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L66" target="_top" title="stringstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L66" xlink:show="new" xlink:title="stringstring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="506.6328"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="508.6328"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L66" target="_top" title="stringstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L66" xlink:show="new" xlink:title="stringstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L66" target="_top" title="stringstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L66" xlink:show="new" xlink:title="stringstring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="26" y="514.8433">stringstring : AStringString</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L67" target="_top" title="bstringstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L67" xlink:show="new" xlink:title="bstringstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L67" target="_top" title="bstringstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L67" xlink:show="new" xlink:title="bstringstring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="519.4375"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="521.4375"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L67" target="_top" title="bstringstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L67" xlink:show="new" xlink:title="bstringstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L67" target="_top" title="bstringstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L67" xlink:show="new" xlink:title="bstringstring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="161" x="26" y="527.6479">bstringstring : BStringString</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L70" target="_top" title="bs" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L70" xlink:show="new" xlink:title="bs" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L70" target="_top" title="bs" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L70" xlink:show="new" xlink:title="bs" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="532.2422"/>
<polygon fill="none" points="17,532.2422,21,536.2422,17,540.2422,13,536.2422" style="stroke: #B38D22; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L70" target="_top" title="bs" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L70" xlink:show="new" xlink:title="bs" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L70" target="_top" title="bs" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L70" xlink:show="new" xlink:title="bs" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="26" y="540.4526">bs : BVector</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L73" target="_top" title="bs2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L73" xlink:show="new" xlink:title="bs2" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L73" target="_top" title="bs2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L73" xlink:show="new" xlink:title="bs2" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="545.0469"/>
<ellipse cx="17" cy="550.0469" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L73" target="_top" title="bs2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L73" xlink:show="new" xlink:title="bs2" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L73" target="_top" title="bs2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L73" xlink:show="new" xlink:title="bs2" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="26" y="553.2573">bs2 : BVector2</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L74" target="_top" title="cb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L74" xlink:show="new" xlink:title="cb" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L74" target="_top" title="cb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L74" xlink:show="new" xlink:title="cb" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="557.8516"/>
<ellipse cx="17" cy="562.8516" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L74" target="_top" title="cb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L74" xlink:show="new" xlink:title="cb" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L74" target="_top" title="cb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L74" xlink:show="new" xlink:title="cb" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="197" x="26" y="566.062">cb : SimpleCallback&lt;ACharString&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L75" target="_top" title="gcb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L75" xlink:show="new" xlink:title="gcb" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L75" target="_top" title="gcb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L75" xlink:show="new" xlink:title="gcb" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="570.6563"/>
<ellipse cx="17" cy="575.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L75" target="_top" title="gcb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L75" xlink:show="new" xlink:title="gcb" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L75" target="_top" title="gcb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L75" xlink:show="new" xlink:title="gcb" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="233" x="26" y="578.8667">gcb : GenericCallback&lt;R::AWCharString&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L76" target="_top" title="vcb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L76" xlink:show="new" xlink:title="vcb" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L76" target="_top" title="vcb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L76" xlink:show="new" xlink:title="vcb" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="583.4609"/>
<ellipse cx="17" cy="588.4609" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L76" target="_top" title="vcb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L76" xlink:show="new" xlink:title="vcb" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L76" target="_top" title="vcb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L76" xlink:show="new" xlink:title="vcb" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="26" y="591.6714">vcb : VoidCallback</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L77" target="_top" title="vps" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L77" xlink:show="new" xlink:title="vps" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L77" target="_top" title="vps" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L77" xlink:show="new" xlink:title="vps" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="596.2656"/>
<ellipse cx="17" cy="601.2656" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L77" target="_top" title="vps" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00014/t00014.cc#L77" xlink:show="new" xlink:title="vps" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L77" target="_top" title="vps" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00014/t00014.cc#L77" xlink:show="new" xlink:title="vps" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="26" y="604.4761">vps : VectorPtr&lt;B&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="264" y1="611.0703" y2="611.0703"/>
@@ -307,9 +307,9 @@
<polygon fill="none" points="770.72,833.22,788.9,844.12,767.89,846.93,770.72,833.22" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M631.31,871.04 C674.45,868.02 726.45,864.39 768.52,861.45 " fill="none" id="C_0001119452495635561975-&gt;C_0002186387853087008570" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="768.15,854.46,788.59,860.05,769.13,868.42,768.15,854.46" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M614.23,938 C632.69,931.94 652.64,925.31 671,919 C703.55,907.82 739.34,895.06 770.06,883.96 " fill="none" id="C_0000640294848487966238-&gt;C_0002186387853087008570" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M614.23,938 C632.69,931.94 652.64,925.31 671,919 C703.55,907.82 739.34,895.06 770.06,883.96 " fill="none" id="C_0000640294848489463071-&gt;C_0002186387853087008570" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="767.75,877.35,788.94,877.12,772.52,890.51,767.75,877.35" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M624.65,734.66 C640.23,740.12 656.31,746.31 671,753 C713.65,772.43 759.22,799.38 793.24,820.84 " fill="none" id="C_0000139599686497658861-&gt;C_0002186387853087008570" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M624.65,734.66 C640.23,740.12 656.31,746.31 671,753 C713.65,772.43 759.22,799.38 793.24,820.84 " fill="none" id="C_0000139599686499155694-&gt;C_0002186387853087008570" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="797.3,815.13,810.38,831.8,789.76,826.92,797.3,815.13" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M249.2,378.9 C263.65,368.87 279.01,360.21 295,354 C358.36,329.39 437.28,344.2 489.07,359.44 " fill="none" id="C_0001192822659863756768-&gt;C_0000378898020828430636" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="494,360.91,486.5202,354.5028,489.2089,359.4798,484.2319,362.1686,494,360.91" style="stroke: #A80036; stroke-width: 1.0;"/>
@@ -375,9 +375,9 @@
<polygon fill="#FFFFFF" points="182.01,619.1,180.9927,626.239,187.1912,629.9238,188.2085,622.7848,182.01,619.1" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="298" y="772.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="80" x="308" y="779.0669">bstringstring</text>
<path d="M147.36,619.11 C163.04,717.94 201.36,853.45 295,928 C344.05,967.05 416.61,972.32 470.76,969.44 " fill="none" id="C_0001192822659863756768-&gt;C_0000640294848487966238" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M147.36,619.11 C163.04,717.94 201.36,853.45 295,928 C344.05,967.05 416.61,972.32 470.76,969.44 " fill="none" id="C_0001192822659863756768-&gt;C_0000640294848489463071" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="475.94,969.14,466.7259,965.6615,470.9482,969.4261,467.1836,973.6484,475.94,969.14" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M247.09,619.33 C262.27,631.63 278.39,642.92 295,652 C345.97,679.86 409.84,694.65 460.13,702.46 " fill="none" id="C_0001192822659863756768-&gt;C_0000139599686497658861" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M247.09,619.33 C262.27,631.63 278.39,642.92 295,652 C345.97,679.86 409.84,694.65 460.13,702.46 " fill="none" id="C_0001192822659863756768-&gt;C_0000139599686499155694" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="465.26,703.24,456.9694,697.9234,460.3176,702.4829,455.7581,705.8312,465.26,703.24" style="stroke: #A80036; stroke-width: 1.0;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -23,34 +23,180 @@ namespace t00015 {
namespace ns1 {
inline namespace ns2_v1_0_0 {
class A {
};
class A { };
}
namespace ns2_v0_9_0 {
class [[deprecated]] A {
};
class [[deprecated]] A { };
}
namespace {
class Anon final : public A {
};
}
class Anon final : public A { };
}
} // namespace ns1
namespace ns3 {
namespace ns1::ns2 {
class Anon : public t00015::ns1::A {
};
class Anon : public t00015::ns1::A { };
}
class B : public ns1::ns2::Anon {
};
}
}
class B : public ns1::ns2::Anon { };
}
} // namespace t00015
} // namespace clanguml
```
## Generated UML diagrams
![t00015_class](./t00015_class.svg "Namespace fun")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00015::ns1::A",
"id": "1410694888805149453",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00015::ns1",
"source_location": {
"file": "../../tests/t00015/t00015.cc",
"line": 6
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00015::ns1::ns2_v0_9_0::A",
"id": "485552648049088863",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00015::ns1::ns2_v0_9_0",
"source_location": {
"file": "../../tests/t00015/t00015.cc",
"line": 10
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "1410694888805149453",
"is_virtual": false,
"name": "clanguml::t00015::ns1::A"
}
],
"display_name": "clanguml::t00015::ns1::Anon",
"id": "1060731132374575329",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Anon",
"namespace": "clanguml::t00015::ns1",
"source_location": {
"file": "../../tests/t00015/t00015.cc",
"line": 14
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "1410694888805149453",
"is_virtual": false,
"name": "t00015::ns1::A"
}
],
"display_name": "clanguml::t00015::ns3::ns1::ns2::Anon",
"id": "1797521288354158629",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Anon",
"namespace": "clanguml::t00015::ns3::ns1::ns2",
"source_location": {
"file": "../../tests/t00015/t00015.cc",
"line": 21
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "1797521288354158629",
"is_virtual": false,
"name": "ns1::ns2::Anon"
}
],
"display_name": "clanguml::t00015::ns3::B",
"id": "870882387819356092",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "B",
"namespace": "clanguml::t00015::ns3",
"source_location": {
"file": "../../tests/t00015/t00015.cc",
"line": 24
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00015_class",
"relationships": [
{
"access": "public",
"destination": "1410694888805149453",
"source": "1060731132374575329",
"type": "extension"
},
{
"access": "public",
"destination": "1410694888805149453",
"source": "1797521288354158629",
"type": "extension"
},
{
"access": "public",
"destination": "1797521288354158629",
"source": "870882387819356092",
"type": "extension"
}
],
"using_namespace": "clanguml::t00015"
}
```

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">
<defs>
<filter height="300%" id="f136o3pcm7b20v" width="300%" x="-1" y="-1">
<filter height="300%" id="fq6skq3yoep1y" width="300%" x="-1" y="-1">
<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"/>
<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>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00015/t00015.cc#L6" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00015/t00015.cc#L6" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f136o3pcm7b20v)" height="48" id="C_0001410694888805149453" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="98" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00015/t00015.cc#L6" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00015/t00015.cc#L6" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq6skq3yoep1y)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00015/t00015.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00015/t00015.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f136o3pcm7b20v)" height="48" id="C_0000485552648049088863" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="204.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00015/t00015.cc#L10" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00015/t00015.cc#L10" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq6skq3yoep1y)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00015/t00015.cc#L16" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00015/t00015.cc#L16" xlink:show="new" xlink:title="Anon" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f136o3pcm7b20v)" height="48" id="C_0001060731132374575329" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="6" y="116"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00015/t00015.cc#L14" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00015/t00015.cc#L14" xlink:show="new" xlink:title="Anon" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq6skq3yoep1y)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00015/t00015.cc#L24" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00015/t00015.cc#L24" xlink:show="new" xlink:title="Anon" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f136o3pcm7b20v)" height="48" id="C_0001797521288354158629" style="stroke: #A80036; stroke-width: 1.5;" width="157" x="136" y="116"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00015/t00015.cc#L21" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00015/t00015.cc#L21" xlink:show="new" xlink:title="Anon" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq6skq3yoep1y)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00015/t00015.cc#L28" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00015/t00015.cc#L28" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f136o3pcm7b20v)" height="48" id="C_0000870882387819356092" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="179" y="224"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00015/t00015.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00015/t00015.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq6skq3yoep1y)" 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;"/>
<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>

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@@ -44,9 +44,219 @@ template <> struct is_numeric<int> {
template <> struct is_numeric<bool> {
enum { value = false };
};
}
}
} // namespace t00016
} // namespace clanguml
```
## Generated UML diagrams
![t00016_class](./t00016_class.svg "Unnamed enums and empty templates")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00016::is_numeric<>",
"id": "214045147845616983",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "value",
"type": "enum"
}
],
"methods": [],
"name": "is_numeric",
"namespace": "clanguml::t00016",
"source_location": {
"file": "../../tests/t00016/t00016.cc",
"line": 4
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00016::is_numeric<float>",
"id": "95618295648274199",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "is_numeric",
"namespace": "clanguml::t00016",
"source_location": {
"file": "../../tests/t00016/t00016.cc",
"line": 8
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "float"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00016::is_numeric<char>",
"id": "979129381790761728",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "is_numeric",
"namespace": "clanguml::t00016",
"source_location": {
"file": "../../tests/t00016/t00016.cc",
"line": 12
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "char"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00016::is_numeric<unsigned int>",
"id": "2090787690027341836",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "is_numeric",
"namespace": "clanguml::t00016",
"source_location": {
"file": "../../tests/t00016/t00016.cc",
"line": 16
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "unsigned int"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00016::is_numeric<int>",
"id": "500603075237446075",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "is_numeric",
"namespace": "clanguml::t00016",
"source_location": {
"file": "../../tests/t00016/t00016.cc",
"line": 20
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "int"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00016::is_numeric<bool>",
"id": "2111316837513419920",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "is_numeric",
"namespace": "clanguml::t00016",
"source_location": {
"file": "../../tests/t00016/t00016.cc",
"line": 24
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "bool"
}
],
"type": "class"
}
],
"name": "t00016_class",
"relationships": [
{
"access": "public",
"destination": "214045147845616983",
"source": "95618295648274199",
"type": "instantiation"
},
{
"access": "public",
"destination": "214045147845616983",
"source": "979129381790761728",
"type": "instantiation"
},
{
"access": "public",
"destination": "214045147845616983",
"source": "2090787690027341836",
"type": "instantiation"
},
{
"access": "public",
"destination": "214045147845616983",
"source": "500603075237446075",
"type": "instantiation"
},
{
"access": "public",
"destination": "214045147845616983",
"source": "2111316837513419920",
"type": "instantiation"
}
],
"using_namespace": "clanguml::t00016"
}
```

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="187px" preserveAspectRatio="none" style="width:847px;height:187px;" version="1.1" viewBox="0 0 847 187" width="847px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f154c325bc6tkk" width="300%" x="-1" y="-1">
<filter height="300%" id="f1po7hx7k4jv3g" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,85 +9,75 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L4" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L4" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f154c325bc6tkk)" height="60.8047" id="C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="367" y="129"/>
<ellipse cx="382" 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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="396" y="149.1543">is_numeric&lt;&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="484" y1="161" y2="161"/>
<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="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="387" y="175.2104">value : enum</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="484" y1="181.8047" y2="181.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L4" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L4" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1po7hx7k4jv3g)" height="60.8047" id="C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="367" y="116"/>
<ellipse cx="382" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M384.9688,137.6406 Q384.3906,137.9375 383.75,138.0781 Q383.1094,138.2344 382.4063,138.2344 Q379.9063,138.2344 378.5781,136.5938 Q377.2656,134.9375 377.2656,131.8125 Q377.2656,128.6875 378.5781,127.0313 Q379.9063,125.375 382.4063,125.375 Q383.1094,125.375 383.75,125.5313 Q384.4063,125.6875 384.9688,125.9844 L384.9688,128.7031 Q384.3438,128.125 383.75,127.8594 Q383.1563,127.5781 382.5313,127.5781 Q381.1875,127.5781 380.5,128.6563 Q379.8125,129.7188 379.8125,131.8125 Q379.8125,133.9063 380.5,134.9844 Q381.1875,136.0469 382.5313,136.0469 Q383.1563,136.0469 383.75,135.7813 Q384.3438,135.5 384.9688,134.9219 L384.9688,137.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="396" y="136.1543">is_numeric&lt;&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="484" y1="148" y2="148"/>
<ellipse cx="378" cy="159" 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="387" y="162.2104">value : enum</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="368" x2="484" y1="168.8047" y2="168.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L8" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L8" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f154c325bc6tkk)" height="60.8047" id="C_0000095618295648274199" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="6" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L8" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L8" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1po7hx7k4jv3g)" height="48" 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;"/>
<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>
<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>
<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;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="26" y="54.2104">value : enum</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="135" y1="60.8047" y2="60.8047"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="135" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L12" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L12" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f154c325bc6tkk)" height="60.8047" id="C_0000979129381790761728" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="171" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L12" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L12" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1po7hx7k4jv3g)" height="48" 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;"/>
<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>
<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>
<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;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="191" y="54.2104">value : enum</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="300" y1="60.8047" y2="60.8047"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="300" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L16" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L16" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f154c325bc6tkk)" height="60.8047" id="C_0002090787690027341836" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="336.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L16" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L16" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1po7hx7k4jv3g)" height="48" 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;"/>
<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>
<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>
<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;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="356.5" y="54.2104">value : enum</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="337.5" x2="514.5" y1="60.8047" y2="60.8047"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="337.5" x2="514.5" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L20" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L20" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f154c325bc6tkk)" height="60.8047" id="C_0000500603075237446075" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="551" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L20" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L20" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1po7hx7k4jv3g)" height="48" 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;"/>
<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>
<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>
<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;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="571" y="54.2104">value : enum</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="552" x2="668" y1="60.8047" y2="60.8047"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="552" x2="668" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L24" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00016/t00016.cc#L24" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f154c325bc6tkk)" height="60.8047" id="C_0002111316837513419920" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="704.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L24" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00016/t00016.cc#L24" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1po7hx7k4jv3g)" height="48" 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;"/>
<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>
<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>
<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;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="724.5" y="54.2104">value : enum</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="705.5" x2="832.5" y1="60.8047" y2="60.8047"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="705.5" x2="832.5" y1="48" y2="48"/>
</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;"/>
<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;"/>
<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;"/>
<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;"/>
<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;"/>
<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;"/>
<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;"/>
<path d="M136.11,53.63 C195.76,72.54 284.16,100.55 347.65,120.67 " fill="none" id="C_0000095618295648274199-&gt;C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="349.95,114.06,366.9,126.77,345.72,127.4,349.95,114.06" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M274.91,56.04 C298.98,70.29 330.54,88.98 358.58,105.58 " fill="none" id="C_0000979129381790761728-&gt;C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="362.3,99.65,375.94,115.86,355.16,111.69,362.3,99.65" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M426,56.04 C426,67.48 426,81.77 426,95.56 " fill="none" id="C_0002090787690027341836-&gt;C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="433,95.65,426,115.65,419,95.65,433,95.65" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M572.32,56.04 C549.12,70.22 518.74,88.8 491.68,105.34 " fill="none" id="C_0000500603075237446075-&gt;C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="495.19,111.4,474.48,115.86,487.89,99.45,495.19,111.4" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M704.48,54.16 C647.7,72.79 564.85,99.96 504.29,119.82 " fill="none" id="C_0002111316837513419920-&gt;C_0000214045147845616983" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="506.26,126.54,485.07,126.13,501.89,113.24,506.26,126.54" style="stroke: #A80036; stroke-width: 1.0;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 14 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">
<defs>
<filter height="300%" id="f10xa5ainljfj8" width="300%" x="-1" y="-1">
<filter height="300%" id="f2p8ubcgdx9wy" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,127 +9,127 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0000121332093434690887" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L8" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L8" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0001424864837456200487" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="81" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L7" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L7" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L11" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L11" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0002151170391844743478" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L9" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L9" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L14" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L14" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0001378112127131766972" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="231.5" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L11" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L11" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L17" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L17" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0001535300935831802489" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="308" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L13" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L13" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L20" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L20" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0001803800465279710134" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="383.5" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L15" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L15" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L23" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L23" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0001135797791892670246" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="457.5" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L17" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L17" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L26" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L26" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0001243547836571712317" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="533.5" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L19" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L19" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L29" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L29" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0000387733199705628658" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="609.5" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L21" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L21" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L32" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L32" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0000747991828672433537" style="stroke: #A80036; stroke-width: 1.5;" width="35" x="679.5" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L23" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L23" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L35" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L35" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="48" id="C_0001783571342994833467" style="stroke: #A80036; stroke-width: 1.5;" width="39" x="749.5" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L25" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L25" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L38" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L38" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f10xa5ainljfj8)" height="112.0234" id="C_0000287495916564113342" style="stroke: #A80036; stroke-width: 1.5;" width="379" x="196.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L27" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L27" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f2p8ubcgdx9wy)" height="112.0234" id="C_0000287495916564113342" style="stroke: #A80036; stroke-width: 1.5;" width="379" x="196.5" y="8"/>
<ellipse cx="377.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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="398.25" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="197.5" x2="574.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L49" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L49" xlink:show="new" xlink:title="some_int" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L38" 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="202.5" y="46"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="204.5" y="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L49" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L49" xlink:show="new" xlink:title="some_int" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="78" x="216.5" y="54.2104">some_int : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L50" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L50" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="58.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="204.5" y="60.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L50" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L50" xlink:show="new" xlink:title="some_int_pointer" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="134" x="216.5" y="67.0151">some_int_pointer : int *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L51" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L51" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="71.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="204.5" y="73.6094"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L51" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L51" xlink:show="new" xlink:title="some_int_pointer_pointer" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="186" x="216.5" y="79.8198">some_int_pointer_pointer : int **</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L52" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L52" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L41" 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="202.5" y="84.4141"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="204.5" y="86.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L52" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00017/t00017.cc#L52" xlink:show="new" xlink:title="some_int_reference" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00017/t00017.cc#L41" xlink:show="new" xlink:title="some_int_reference" 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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="197.5" x2="574.5" y1="99.2188" y2="99.2188"/>

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -16,34 +16,13 @@ diagrams:
```
## Source code
File t00018_impl.h
```cpp
#pragma once
#include "t00018.h"
namespace clanguml {
namespace t00018 {
namespace impl {
class widget {
int n;
public:
void draw(const clanguml::t00018::widget &w) const;
void draw(const clanguml::t00018::widget &w);
widget(int n);
};
}
}
}
```
File t00018.h
```cpp
#pragma once
#ifndef _MSC_VER
#include <experimental/propagate_const>
#endif
#include <iostream>
#include <memory>
@@ -74,6 +53,29 @@ public:
}
}
```
File t00018_impl.h
```cpp
#pragma once
#include "t00018.h"
namespace clanguml {
namespace t00018 {
namespace impl {
class widget {
int n;
public:
void draw(const clanguml::t00018::widget &w) const;
void draw(const clanguml::t00018::widget &w);
widget(int n);
};
}
}
}
```
File t00018.cc
```cpp
@@ -97,8 +99,8 @@ widget::widget(widget &&) = default;
widget::~widget() = default;
widget &widget::operator=(widget &&) = default;
}
}
} // namespace t00018
} // namespace clanguml
```
File t00018_impl.cc
@@ -126,10 +128,283 @@ void widget::draw(const clanguml::t00018::widget &w)
if (w.shown())
std::cout << "drawing a non-const widget " << n << '\n';
}
}
}
}
} // namespace impl
} // namespace t00018
} // namespace clanguml
```
## Generated UML diagrams
![t00018_class](./t00018_class.svg "Pimpl pattern")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00018::impl::widget",
"id": "130502639682787993",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "n",
"source_location": {
"file": "../../tests/t00018/t00018_impl.h",
"line": 10
},
"type": "int"
}
],
"methods": [
{
"access": "public",
"is_const": true,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "draw",
"parameters": [
{
"name": "w",
"type": "const clanguml::t00018::widget &"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "draw",
"parameters": [
{
"name": "w",
"type": "const clanguml::t00018::widget &"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "widget",
"parameters": [
{
"name": "n",
"type": "int"
}
],
"type": "void"
}
],
"name": "widget",
"namespace": "clanguml::t00018::impl",
"source_location": {
"file": "../../tests/t00018/t00018_impl.h",
"line": 9
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00018::widget",
"id": "1005661284373854088",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "pImpl",
"source_location": {
"file": "../../tests/t00018/t00018.h",
"line": 18
},
"type": "std::unique_ptr<impl::widget>"
}
],
"methods": [
{
"access": "public",
"is_const": true,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "draw",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "draw",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": true,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "shown",
"parameters": [],
"type": "bool"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "widget",
"parameters": [
{
"name": "",
"type": "int"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "~widget",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "widget",
"parameters": [
{
"name": "",
"type": "clanguml::t00018::widget &&"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "widget",
"parameters": [
{
"name": "",
"type": "const clanguml::t00018::widget &"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "operator=",
"parameters": [
{
"name": "",
"type": "clanguml::t00018::widget &&"
}
],
"type": "clanguml::t00018::widget &"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "operator=",
"parameters": [
{
"name": "",
"type": "const clanguml::t00018::widget &"
}
],
"type": "clanguml::t00018::widget &"
}
],
"name": "widget",
"namespace": "clanguml::t00018",
"source_location": {
"file": "../../tests/t00018/t00018.h",
"line": 17
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00018_class",
"relationships": [
{
"access": "public",
"destination": "1005661284373854088",
"source": "130502639682787993",
"type": "dependency"
},
{
"access": "private",
"destination": "130502639682787993",
"label": "pImpl",
"source": "1005661284373854088",
"type": "aggregation"
}
],
"using_namespace": "clanguml::t00018"
}
```

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">
<defs>
<filter height="300%" id="fu3ka00bp9kjj" width="300%" x="-1" y="-1">
<filter height="300%" id="fpgw6svclw8rv" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,18 +9,18 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018_impl.h#L9" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018_impl.h#L9" xlink:show="new" xlink:title="widget" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fu3ka00bp9kjj)" height="99.2188" id="C_0000130502639682787993" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="13" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00018/t00018_impl.h#L9" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00018/t00018_impl.h#L9" xlink:show="new" xlink:title="widget" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fpgw6svclw8rv)" height="99.2188" id="C_0000130502639682787993" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="13" y="8"/>
<ellipse cx="87.25" 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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="107.75" y="28.1543">impl::widget</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="14" x2="243" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018_impl.h#L10" target="_top" title="n" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018_impl.h#L10" xlink:show="new" xlink:title="n" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00018/t00018_impl.h#L10" target="_top" title="n" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00018/t00018_impl.h#L10" xlink:show="new" xlink:title="n" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="19" y="46"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="21" y="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018_impl.h#L10" target="_top" title="n" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018_impl.h#L10" xlink:show="new" xlink:title="n" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00018/t00018_impl.h#L10" target="_top" title="n" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00018/t00018_impl.h#L10" xlink:show="new" xlink:title="n" 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>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="14" x2="243" y1="60.8047" y2="60.8047"/>
@@ -30,18 +30,18 @@
<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/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018.h#L15" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018.h#L15" xlink:show="new" xlink:title="widget" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fu3ka00bp9kjj)" height="176.0469" id="C_0001005661284373854088" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="6" y="184"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00018/t00018.h#L17" target="_top" title="widget" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00018/t00018.h#L17" xlink:show="new" xlink:title="widget" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fpgw6svclw8rv)" 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 href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018.h#L16" target="_top" title="pImpl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018.h#L16" xlink:show="new" xlink:title="pImpl" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00018/t00018.h#L18" target="_top" title="pImpl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="222"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="224"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018.h#L16" target="_top" title="pImpl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00018/t00018.h#L16" xlink:show="new" xlink:title="pImpl" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00018/t00018.h#L18" target="_top" title="pImpl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/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="230.2104">pImpl : std::unique_ptr&lt;impl::widget&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="250" y1="236.8047" y2="236.8047"/>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 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="685px" preserveAspectRatio="none" style="width:781px;height:685px;" version="1.1" viewBox="0 0 781 685" width="781px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="fws67gtlbt0av" width="300%" x="-1" y="-1">
<filter height="300%" id="f1t0hldensd7xt" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_base.h#L8" target="_top" title="Base" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_base.h#L8" xlink:show="new" xlink:title="Base" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fws67gtlbt0av)" height="99.2188" id="C_0000261668487476634123" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="194.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_base.h#L8" target="_top" title="Base" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_base.h#L8" xlink:show="new" xlink:title="Base" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1t0hldensd7xt)" height="99.2188" id="C_0000261668487476634123" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="194.5" y="8"/>
<ellipse cx="256.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M259.2188,29.6406 Q258.6406,29.9375 258,30.0781 Q257.3594,30.2344 256.6563,30.2344 Q254.1563,30.2344 252.8281,28.5938 Q251.5156,26.9375 251.5156,23.8125 Q251.5156,20.6875 252.8281,19.0313 Q254.1563,17.375 256.6563,17.375 Q257.3594,17.375 258,17.5313 Q258.6563,17.6875 259.2188,17.9844 L259.2188,20.7031 Q258.5938,20.125 258,19.8594 Q257.4063,19.5781 256.7813,19.5781 Q255.4375,19.5781 254.75,20.6563 Q254.0625,21.7188 254.0625,23.8125 Q254.0625,25.9063 254.75,26.9844 Q255.4375,28.0469 256.7813,28.0469 Q257.4063,28.0469 258,27.7813 Q258.5938,27.5 259.2188,26.9219 L259.2188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="31" x="276.75" y="28.1543">Base</text>
@@ -25,8 +25,8 @@
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="202.5" y="94.4141"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="97" x="214.5" y="100.6245">m2() : std::string</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer1.h#L9" target="_top" title="Layer1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer1.h#L9" xlink:show="new" xlink:title="Layer1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fws67gtlbt0av)" height="73.6094" id="C_0000902631298537519271" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="443" y="601"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer1.h#L9" target="_top" title="Layer1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer1.h#L9" xlink:show="new" xlink:title="Layer1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1t0hldensd7xt)" height="73.6094" id="C_0000902631298537519271" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="443" y="601"/>
<ellipse cx="458" cy="617" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M460.9688,622.6406 Q460.3906,622.9375 459.75,623.0781 Q459.1094,623.2344 458.4063,623.2344 Q455.9063,623.2344 454.5781,621.5938 Q453.2656,619.9375 453.2656,616.8125 Q453.2656,613.6875 454.5781,612.0313 Q455.9063,610.375 458.4063,610.375 Q459.1094,610.375 459.75,610.5313 Q460.4063,610.6875 460.9688,610.9844 L460.9688,613.7031 Q460.3438,613.125 459.75,612.8594 Q459.1563,612.5781 458.5313,612.5781 Q457.1875,612.5781 456.5,613.6563 Q455.8125,614.7188 455.8125,616.8125 Q455.8125,618.9063 456.5,619.9844 Q457.1875,621.0469 458.5313,621.0469 Q459.1563,621.0469 459.75,620.7813 Q460.3438,620.5 460.9688,619.9219 L460.9688,622.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="472" y="621.1543">Layer1</text>
@@ -39,8 +39,8 @@
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="451" y="661.8047"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="97" x="463" y="668.0151">m2() : std::string</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer2.h#L6" target="_top" title="Layer2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer2.h#L6" xlink:show="new" xlink:title="Layer2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fws67gtlbt0av)" height="60.8047" id="C_0001115150925302580647" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="187.5" y="479"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer2.h#L6" target="_top" title="Layer2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer2.h#L6" xlink:show="new" xlink:title="Layer2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1t0hldensd7xt)" height="60.8047" id="C_0001115150925302580647" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="187.5" y="479"/>
<ellipse cx="214.65" cy="495" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M217.6188,500.6406 Q217.0406,500.9375 216.4,501.0781 Q215.7594,501.2344 215.0563,501.2344 Q212.5563,501.2344 211.2281,499.5938 Q209.9156,497.9375 209.9156,494.8125 Q209.9156,491.6875 211.2281,490.0313 Q212.5563,488.375 215.0563,488.375 Q215.7594,488.375 216.4,488.5313 Q217.0563,488.6875 217.6188,488.9844 L217.6188,491.7031 Q216.9938,491.125 216.4,490.8594 Q215.8063,490.5781 215.1813,490.5781 Q213.8375,490.5781 213.15,491.6563 Q212.4625,492.7188 212.4625,494.8125 Q212.4625,496.9063 213.15,497.9844 Q213.8375,499.0469 215.1813,499.0469 Q215.8063,499.0469 216.4,498.7813 Q216.9938,498.5 217.6188,497.9219 L217.6188,500.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="231.35" y="499.1543">Layer2</text>
@@ -51,8 +51,8 @@
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="195.5" y="527"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="207.5" y="533.2104">all_calls_count() const : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer3.h#L8" target="_top" title="Layer3" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer3.h#L8" xlink:show="new" xlink:title="Layer3" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fws67gtlbt0av)" height="124.8281" id="C_0001853410560073854945" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="6" y="277"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer3.h#L8" target="_top" title="Layer3" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer3.h#L8" xlink:show="new" xlink:title="Layer3" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1t0hldensd7xt)" height="124.8281" id="C_0001853410560073854945" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="6" y="277"/>
<ellipse cx="21" cy="293" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,298.6406 Q23.3906,298.9375 22.75,299.0781 Q22.1094,299.2344 21.4063,299.2344 Q18.9063,299.2344 17.5781,297.5938 Q16.2656,295.9375 16.2656,292.8125 Q16.2656,289.6875 17.5781,288.0313 Q18.9063,286.375 21.4063,286.375 Q22.1094,286.375 22.75,286.5313 Q23.4063,286.6875 23.9688,286.9844 L23.9688,289.7031 Q23.3438,289.125 22.75,288.8594 Q22.1563,288.5781 21.5313,288.5781 Q20.1875,288.5781 19.5,289.6563 Q18.8125,290.7188 18.8125,292.8125 Q18.8125,294.9063 19.5,295.9844 Q20.1875,297.0469 21.5313,297.0469 Q22.1563,297.0469 22.75,296.7813 Q23.3438,296.5 23.9688,295.9219 L23.9688,298.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="35" y="297.1543">Layer3</text>
@@ -60,18 +60,18 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="73" x="85" y="286.1387">LowerLayer</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="155" y1="309" y2="309"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer3.h#L29" target="_top" title="m_m1_calls" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer3.h#L29" xlink:show="new" xlink:title="m_m1_calls" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer3.h#L29" target="_top" title="m_m1_calls" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer3.h#L29" xlink:show="new" xlink:title="m_m1_calls" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="315"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="317"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer3.h#L29" target="_top" title="m_m1_calls" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer3.h#L29" xlink:show="new" xlink:title="m_m1_calls" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer3.h#L29" target="_top" title="m_m1_calls" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer3.h#L29" xlink:show="new" xlink:title="m_m1_calls" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="26" y="323.2104">m_m1_calls : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer3.h#L30" target="_top" title="m_m2_calls" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer3.h#L30" xlink:show="new" xlink:title="m_m2_calls" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer3.h#L30" target="_top" title="m_m2_calls" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer3.h#L30" xlink:show="new" xlink:title="m_m2_calls" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="327.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="329.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer3.h#L30" target="_top" title="m_m2_calls" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019_layer3.h#L30" xlink:show="new" xlink:title="m_m2_calls" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer3.h#L30" target="_top" title="m_m2_calls" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019_layer3.h#L30" xlink:show="new" xlink:title="m_m2_calls" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="26" y="336.0151">m_m2_calls : int</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="155" y1="342.6094" y2="342.6094"/>
@@ -83,7 +83,7 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="26" y="382.4292">m1_calls() const : int</text>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="389.0234"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="26" y="395.2339">m2_calls() const : int</text>
<rect fill="#FEFECE" filter="url(#fws67gtlbt0av)" height="48" id="C_0000972890420743280319" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="222.5" y="168"/>
<rect fill="#FEFECE" filter="url(#f1t0hldensd7xt)" height="48" id="C_0000972890420743280319" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="222.5" y="168"/>
<ellipse cx="237.5" cy="184" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M240.4688,189.6406 Q239.8906,189.9375 239.25,190.0781 Q238.6094,190.2344 237.9063,190.2344 Q235.4063,190.2344 234.0781,188.5938 Q232.7656,186.9375 232.7656,183.8125 Q232.7656,180.6875 234.0781,179.0313 Q235.4063,177.375 237.9063,177.375 Q238.6094,177.375 239.25,177.5313 Q239.9063,177.6875 240.4688,177.9844 L240.4688,180.7031 Q239.8438,180.125 239.25,179.8594 Q238.6563,179.5781 238.0313,179.5781 Q236.6875,179.5781 236,180.6563 Q235.3125,181.7188 235.3125,183.8125 Q235.3125,185.9063 236,186.9844 Q236.6875,188.0469 238.0313,188.0469 Q238.6563,188.0469 239.25,187.7813 Q239.8438,187.5 240.4688,186.9219 L240.4688,189.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="251.5" y="188.1543">Layer3</text>
@@ -91,7 +91,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="30" x="301.5" y="177.1387">Base</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="223.5" x2="328.5" y1="200" y2="200"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="223.5" x2="328.5" y1="208" y2="208"/>
<rect fill="#FEFECE" filter="url(#fws67gtlbt0av)" height="48" id="C_0000129784999866998870" style="stroke: #A80036; stroke-width: 1.5;" width="170" x="191" y="315.5"/>
<rect fill="#FEFECE" filter="url(#f1t0hldensd7xt)" height="48" id="C_0000129784999866998870" style="stroke: #A80036; stroke-width: 1.5;" width="170" x="191" y="315.5"/>
<ellipse cx="206" cy="331.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M208.9688,337.1406 Q208.3906,337.4375 207.75,337.5781 Q207.1094,337.7344 206.4063,337.7344 Q203.9063,337.7344 202.5781,336.0938 Q201.2656,334.4375 201.2656,331.3125 Q201.2656,328.1875 202.5781,326.5313 Q203.9063,324.875 206.4063,324.875 Q207.1094,324.875 207.75,325.0313 Q208.4063,325.1875 208.9688,325.4844 L208.9688,328.2031 Q208.3438,327.625 207.75,327.3594 Q207.1563,327.0781 206.5313,327.0781 Q205.1875,327.0781 204.5,328.1563 Q203.8125,329.2188 203.8125,331.3125 Q203.8125,333.4063 204.5,334.4844 Q205.1875,335.5469 206.5313,335.5469 Q207.1563,335.5469 207.75,335.2813 Q208.3438,335 208.9688,334.4219 L208.9688,337.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="220" y="335.6543">Layer2</text>
@@ -99,7 +99,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="93" x="270" y="324.6387">Layer3&lt;Base&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="192" x2="360" y1="347.5" y2="347.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="192" x2="360" y1="355.5" y2="355.5"/>
<rect fill="#FEFECE" filter="url(#fws67gtlbt0av)" height="48" id="C_0000659076058325663708" style="stroke: #A80036; stroke-width: 1.5;" width="233" x="401.5" y="485.5"/>
<rect fill="#FEFECE" filter="url(#f1t0hldensd7xt)" height="48" id="C_0000659076058325663708" style="stroke: #A80036; stroke-width: 1.5;" width="233" x="401.5" y="485.5"/>
<ellipse cx="416.5" cy="501.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M419.4688,507.1406 Q418.8906,507.4375 418.25,507.5781 Q417.6094,507.7344 416.9063,507.7344 Q414.4063,507.7344 413.0781,506.0938 Q411.7656,504.4375 411.7656,501.3125 Q411.7656,498.1875 413.0781,496.5313 Q414.4063,494.875 416.9063,494.875 Q417.6094,494.875 418.25,495.0313 Q418.9063,495.1875 419.4688,495.4844 L419.4688,498.2031 Q418.8438,497.625 418.25,497.3594 Q417.6563,497.0781 417.0313,497.0781 Q415.6875,497.0781 415,498.1563 Q414.3125,499.2188 414.3125,501.3125 Q414.3125,503.4063 415,504.4844 Q415.6875,505.5469 417.0313,505.5469 Q417.6563,505.5469 418.25,505.2813 Q418.8438,505 419.4688,504.4219 L419.4688,507.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="41" x="430.5" y="505.6543">Layer1</text>
@@ -107,18 +107,18 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="156" x="480.5" y="494.6387">Layer2&lt;Layer3&lt;Base&gt;&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="402.5" x2="633.5" y1="517.5" y2="517.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="402.5" x2="633.5" y1="525.5" y2="525.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fws67gtlbt0av)" height="60.8047" id="C_0001015164998787089197" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="396" y="309"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1t0hldensd7xt)" height="60.8047" id="C_0001015164998787089197" style="stroke: #A80036; stroke-width: 1.5;" width="374" x="396" y="309"/>
<ellipse cx="574.75" cy="325" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M577.7188,330.6406 Q577.1406,330.9375 576.5,331.0781 Q575.8594,331.2344 575.1563,331.2344 Q572.6563,331.2344 571.3281,329.5938 Q570.0156,327.9375 570.0156,324.8125 Q570.0156,321.6875 571.3281,320.0313 Q572.6563,318.375 575.1563,318.375 Q575.8594,318.375 576.5,318.5313 Q577.1563,318.6875 577.7188,318.9844 L577.7188,321.7031 Q577.0938,321.125 576.5,320.8594 Q575.9063,320.5781 575.2813,320.5781 Q573.9375,320.5781 573.25,321.6563 Q572.5625,322.7188 572.5625,324.8125 Q572.5625,326.9063 573.25,327.9844 Q573.9375,329.0469 575.2813,329.0469 Q575.9063,329.0469 576.5,328.7813 Q577.0938,328.5 577.7188,327.9219 L577.7188,330.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="595.25" y="329.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="397" x2="769" y1="341" y2="341"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019.cc#L13" target="_top" title="layers" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019.cc#L13" xlink:show="new" xlink:title="layers" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019.cc#L13" target="_top" title="layers" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019.cc#L13" xlink:show="new" xlink:title="layers" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="402" y="347"/>
<ellipse cx="407" cy="352" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019.cc#L13" target="_top" title="layers" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00019/t00019.cc#L13" xlink:show="new" xlink:title="layers" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019.cc#L13" target="_top" title="layers" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00019/t00019.cc#L13" xlink:show="new" xlink:title="layers" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="348" x="416" y="355.2104">layers : std::unique_ptr&lt;Layer1&lt;Layer2&lt;Layer3&lt;Base&gt;&gt;&gt;&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="397" x2="769" y1="361.8047" y2="361.8047"/>

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 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="360px" preserveAspectRatio="none" style="width:1144px;height:360px;" version="1.1" viewBox="0 0 1144 360" width="1144px" 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="870px" preserveAspectRatio="none" style="width:754px;height:870px;" version="1.1" viewBox="0 0 754 870" width="754px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1k4wblkcpbt7j" width="300%" x="-1" y="-1">
<filter height="300%" id="f1de56mnd33bws" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,125 +9,137 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L6" target="_top" title="ProductA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L6" xlink:show="new" xlink:title="ProductA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k4wblkcpbt7j)" height="73.6094" id="C_0000425267229659464944" style="stroke: #A80036; stroke-width: 1.5;" width="193" x="769" y="8"/>
<ellipse cx="833.25" cy="24" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M833.3594,19.3438 L832.2031,24.4219 L834.5313,24.4219 L833.3594,19.3438 Z M831.875,17.1094 L834.8594,17.1094 L838.2188,29.5 L835.7656,29.5 L835,26.4375 L831.7188,26.4375 L830.9688,29.5 L828.5313,29.5 L831.875,17.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="56" x="853.75" y="28.1543">ProductA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="770" x2="961" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="770" x2="961" y1="48" y2="48"/>
<ellipse cx="780" 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="158" x="789" y="62.2104">~ProductA() = default : void</text>
<ellipse cx="780" 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="167" x="789" y="75.0151">sell(int price) const = 0 : bool</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L6" target="_top" title="ProductA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L6" xlink:show="new" xlink:title="ProductA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1de56mnd33bws)" height="73.6094" id="C_0000425267229659464944" style="stroke: #A80036; stroke-width: 1.5;" width="193" x="297.33" y="142"/>
<ellipse cx="361.58" cy="158" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M361.6894,153.3438 L360.5331,158.4219 L362.8613,158.4219 L361.6894,153.3438 Z M360.205,151.1094 L363.1894,151.1094 L366.5488,163.5 L364.0956,163.5 L363.33,160.4375 L360.0488,160.4375 L359.2988,163.5 L356.8613,163.5 L360.205,151.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="56" x="382.08" y="162.1543">ProductA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="298.33" x2="489.33" y1="174" y2="174"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="298.33" x2="489.33" y1="182" y2="182"/>
<ellipse cx="308.33" cy="193" 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="317.33" y="196.2104">~ProductA() = default : void</text>
<ellipse cx="308.33" cy="205.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="167" x="317.33" y="209.0151">sell(int price) const = 0 : bool</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L12" target="_top" title="ProductA1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L12" xlink:show="new" xlink:title="ProductA1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k4wblkcpbt7j)" height="60.8047" id="C_0001756496029797864207" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="212" y="148.5"/>
<ellipse cx="260.75" cy="164.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M263.7188,170.1406 Q263.1406,170.4375 262.5,170.5781 Q261.8594,170.7344 261.1563,170.7344 Q258.6563,170.7344 257.3281,169.0938 Q256.0156,167.4375 256.0156,164.3125 Q256.0156,161.1875 257.3281,159.5313 Q258.6563,157.875 261.1563,157.875 Q261.8594,157.875 262.5,158.0313 Q263.1563,158.1875 263.7188,158.4844 L263.7188,161.2031 Q263.0938,160.625 262.5,160.3594 Q261.9063,160.0781 261.2813,160.0781 Q259.9375,160.0781 259.25,161.1563 Q258.5625,162.2188 258.5625,164.3125 Q258.5625,166.4063 259.25,167.4844 Q259.9375,168.5469 261.2813,168.5469 Q261.9063,168.5469 262.5,168.2813 Q263.0938,168 263.7188,167.4219 L263.7188,170.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="281.25" y="168.6543">ProductA1</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="213" x2="382" y1="180.5" y2="180.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="213" x2="382" y1="188.5" y2="188.5"/>
<ellipse cx="223" cy="199.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="145" x="232" y="202.7104">sell(int price) const : bool</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L12" target="_top" title="ProductA1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L12" xlink:show="new" xlink:title="ProductA1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1de56mnd33bws)" height="60.8047" id="C_0001756496029797864207" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="169.33" y="276"/>
<ellipse cx="218.08" cy="292" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M221.0488,297.6406 Q220.4706,297.9375 219.83,298.0781 Q219.1894,298.2344 218.4863,298.2344 Q215.9863,298.2344 214.6581,296.5938 Q213.3456,294.9375 213.3456,291.8125 Q213.3456,288.6875 214.6581,287.0313 Q215.9863,285.375 218.4863,285.375 Q219.1894,285.375 219.83,285.5313 Q220.4863,285.6875 221.0488,285.9844 L221.0488,288.7031 Q220.4238,288.125 219.83,287.8594 Q219.2363,287.5781 218.6113,287.5781 Q217.2675,287.5781 216.58,288.6563 Q215.8925,289.7188 215.8925,291.8125 Q215.8925,293.9063 216.58,294.9844 Q217.2675,296.0469 218.6113,296.0469 Q219.2363,296.0469 219.83,295.7813 Q220.4238,295.5 221.0488,294.9219 L221.0488,297.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="238.58" y="296.1543">ProductA1</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="170.33" x2="339.33" y1="308" y2="308"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="170.33" x2="339.33" y1="316" y2="316"/>
<ellipse cx="180.33" cy="327" 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="189.33" y="330.2104">sell(int price) const : bool</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L17" target="_top" title="ProductA2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L17" xlink:show="new" xlink:title="ProductA2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k4wblkcpbt7j)" height="60.8047" id="C_0001531708592885216981" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="962" y="148.5"/>
<ellipse cx="1010.75" cy="164.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1013.7188,170.1406 Q1013.1406,170.4375 1012.5,170.5781 Q1011.8594,170.7344 1011.1563,170.7344 Q1008.6563,170.7344 1007.3281,169.0938 Q1006.0156,167.4375 1006.0156,164.3125 Q1006.0156,161.1875 1007.3281,159.5313 Q1008.6563,157.875 1011.1563,157.875 Q1011.8594,157.875 1012.5,158.0313 Q1013.1563,158.1875 1013.7188,158.4844 L1013.7188,161.2031 Q1013.0938,160.625 1012.5,160.3594 Q1011.9063,160.0781 1011.2813,160.0781 Q1009.9375,160.0781 1009.25,161.1563 Q1008.5625,162.2188 1008.5625,164.3125 Q1008.5625,166.4063 1009.25,167.4844 Q1009.9375,168.5469 1011.2813,168.5469 Q1011.9063,168.5469 1012.5,168.2813 Q1013.0938,168 1013.7188,167.4219 L1013.7188,170.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="1031.25" y="168.6543">ProductA2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="963" x2="1132" y1="180.5" y2="180.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="963" x2="1132" y1="188.5" y2="188.5"/>
<ellipse cx="973" cy="199.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="145" x="982" y="202.7104">sell(int price) const : bool</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L17" target="_top" title="ProductA2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L17" xlink:show="new" xlink:title="ProductA2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1de56mnd33bws)" height="60.8047" id="C_0001531708592885216981" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="518.33" y="403.5"/>
<ellipse cx="567.08" cy="419.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M570.0488,425.1406 Q569.4706,425.4375 568.83,425.5781 Q568.1894,425.7344 567.4863,425.7344 Q564.9863,425.7344 563.6581,424.0938 Q562.3456,422.4375 562.3456,419.3125 Q562.3456,416.1875 563.6581,414.5313 Q564.9863,412.875 567.4863,412.875 Q568.1894,412.875 568.83,413.0313 Q569.4863,413.1875 570.0488,413.4844 L570.0488,416.2031 Q569.4238,415.625 568.83,415.3594 Q568.2363,415.0781 567.6113,415.0781 Q566.2675,415.0781 565.58,416.1563 Q564.8925,417.2188 564.8925,419.3125 Q564.8925,421.4063 565.58,422.4844 Q566.2675,423.5469 567.6113,423.5469 Q568.2363,423.5469 568.83,423.2813 Q569.4238,423 570.0488,422.4219 L570.0488,425.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="587.58" y="423.6543">ProductA2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="519.33" x2="688.33" y1="435.5" y2="435.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="519.33" x2="688.33" y1="443.5" y2="443.5"/>
<ellipse cx="529.33" cy="454.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="145" x="538.33" y="457.7104">sell(int price) const : bool</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L22" target="_top" title="ProductB" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L22" xlink:show="new" xlink:title="ProductB" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k4wblkcpbt7j)" height="73.6094" id="C_0002235759006374865842" style="stroke: #A80036; stroke-width: 1.5;" width="195" x="357" y="8"/>
<ellipse cx="422.25" cy="24" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M422.3594,19.3438 L421.2031,24.4219 L423.5313,24.4219 L422.3594,19.3438 Z M420.875,17.1094 L423.8594,17.1094 L427.2188,29.5 L424.7656,29.5 L424,26.4375 L420.7188,26.4375 L419.9688,29.5 L417.5313,29.5 L420.875,17.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="56" x="442.75" y="28.1543">ProductB</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="358" x2="551" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="358" x2="551" y1="48" y2="48"/>
<ellipse cx="368" 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="159" x="377" y="62.2104">~ProductB() = default : void</text>
<ellipse cx="368" 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="169" x="377" y="75.0151">buy(int price) const = 0 : bool</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L22" target="_top" title="ProductB" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L22" xlink:show="new" xlink:title="ProductB" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1de56mnd33bws)" height="73.6094" id="C_0002235759006374865842" style="stroke: #A80036; stroke-width: 1.5;" width="195" x="22.33" y="531"/>
<ellipse cx="87.58" cy="547" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M87.6894,542.3438 L86.5331,547.4219 L88.8613,547.4219 L87.6894,542.3438 Z M86.205,540.1094 L89.1894,540.1094 L92.5488,552.5 L90.0956,552.5 L89.33,549.4375 L86.0488,549.4375 L85.2988,552.5 L82.8613,552.5 L86.205,540.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="56" x="108.08" y="551.1543">ProductB</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="23.33" x2="216.33" y1="563" y2="563"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="23.33" x2="216.33" y1="571" y2="571"/>
<ellipse cx="33.33" cy="582" 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="159" x="42.33" y="585.2104">~ProductB() = default : void</text>
<ellipse cx="33.33" cy="594.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="169" x="42.33" y="598.0151">buy(int price) const = 0 : bool</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L28" target="_top" title="ProductB1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L28" xlink:show="new" xlink:title="ProductB1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k4wblkcpbt7j)" height="60.8047" id="C_0001465493024233223845" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="6" y="148.5"/>
<ellipse cx="54.75" cy="164.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M57.7188,170.1406 Q57.1406,170.4375 56.5,170.5781 Q55.8594,170.7344 55.1563,170.7344 Q52.6563,170.7344 51.3281,169.0938 Q50.0156,167.4375 50.0156,164.3125 Q50.0156,161.1875 51.3281,159.5313 Q52.6563,157.875 55.1563,157.875 Q55.8594,157.875 56.5,158.0313 Q57.1563,158.1875 57.7188,158.4844 L57.7188,161.2031 Q57.0938,160.625 56.5,160.3594 Q55.9063,160.0781 55.2813,160.0781 Q53.9375,160.0781 53.25,161.1563 Q52.5625,162.2188 52.5625,164.3125 Q52.5625,166.4063 53.25,167.4844 Q53.9375,168.5469 55.2813,168.5469 Q55.9063,168.5469 56.5,168.2813 Q57.0938,168 57.7188,167.4219 L57.7188,170.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="75.25" y="168.6543">ProductB1</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="176" y1="180.5" y2="180.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="176" y1="188.5" y2="188.5"/>
<ellipse cx="17" cy="199.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="145" x="26" y="202.7104">buy(int price) const : bool</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L28" target="_top" title="ProductB1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L28" xlink:show="new" xlink:title="ProductB1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1de56mnd33bws)" height="60.8047" id="C_0001465493024233223845" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="240.33" y="665"/>
<ellipse cx="289.08" cy="681" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M292.0488,686.6406 Q291.4706,686.9375 290.83,687.0781 Q290.1894,687.2344 289.4863,687.2344 Q286.9863,687.2344 285.6581,685.5938 Q284.3456,683.9375 284.3456,680.8125 Q284.3456,677.6875 285.6581,676.0313 Q286.9863,674.375 289.4863,674.375 Q290.1894,674.375 290.83,674.5313 Q291.4863,674.6875 292.0488,674.9844 L292.0488,677.7031 Q291.4238,677.125 290.83,676.8594 Q290.2363,676.5781 289.6113,676.5781 Q288.2675,676.5781 287.58,677.6563 Q286.8925,678.7188 286.8925,680.8125 Q286.8925,682.9063 287.58,683.9844 Q288.2675,685.0469 289.6113,685.0469 Q290.2363,685.0469 290.83,684.7813 Q291.4238,684.5 292.0488,683.9219 L292.0488,686.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="309.58" y="685.1543">ProductB1</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="241.33" x2="410.33" y1="697" y2="697"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="241.33" x2="410.33" y1="705" y2="705"/>
<ellipse cx="251.33" cy="716" 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="260.33" y="719.2104">buy(int price) const : bool</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L33" target="_top" title="ProductB2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L33" xlink:show="new" xlink:title="ProductB2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k4wblkcpbt7j)" height="60.8047" id="C_0002154665562370057871" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="756" y="148.5"/>
<ellipse cx="804.75" cy="164.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M807.7188,170.1406 Q807.1406,170.4375 806.5,170.5781 Q805.8594,170.7344 805.1563,170.7344 Q802.6563,170.7344 801.3281,169.0938 Q800.0156,167.4375 800.0156,164.3125 Q800.0156,161.1875 801.3281,159.5313 Q802.6563,157.875 805.1563,157.875 Q805.8594,157.875 806.5,158.0313 Q807.1563,158.1875 807.7188,158.4844 L807.7188,161.2031 Q807.0938,160.625 806.5,160.3594 Q805.9063,160.0781 805.2813,160.0781 Q803.9375,160.0781 803.25,161.1563 Q802.5625,162.2188 802.5625,164.3125 Q802.5625,166.4063 803.25,167.4844 Q803.9375,168.5469 805.2813,168.5469 Q805.9063,168.5469 806.5,168.2813 Q807.0938,168 807.7188,167.4219 L807.7188,170.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="825.25" y="168.6543">ProductB2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="757" x2="926" y1="180.5" y2="180.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="757" x2="926" y1="188.5" y2="188.5"/>
<ellipse cx="767" cy="199.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="145" x="776" y="202.7104">buy(int price) const : bool</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L33" target="_top" title="ProductB2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L33" xlink:show="new" xlink:title="ProductB2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1de56mnd33bws)" height="60.8047" id="C_0002154665562370057871" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="34.33" y="665"/>
<ellipse cx="83.08" cy="681" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M86.0488,686.6406 Q85.4706,686.9375 84.83,687.0781 Q84.1894,687.2344 83.4863,687.2344 Q80.9863,687.2344 79.6581,685.5938 Q78.3456,683.9375 78.3456,680.8125 Q78.3456,677.6875 79.6581,676.0313 Q80.9863,674.375 83.4863,674.375 Q84.1894,674.375 84.83,674.5313 Q85.4863,674.6875 86.0488,674.9844 L86.0488,677.7031 Q85.4238,677.125 84.83,676.8594 Q84.2363,676.5781 83.6113,676.5781 Q82.2675,676.5781 81.58,677.6563 Q80.8925,678.7188 80.8925,680.8125 Q80.8925,682.9063 81.58,683.9844 Q82.2675,685.0469 83.6113,685.0469 Q84.2363,685.0469 84.83,684.7813 Q85.4238,684.5 86.0488,683.9219 L86.0488,686.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="65" x="103.58" y="685.1543">ProductB2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="35.33" x2="204.33" y1="697" y2="697"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="35.33" x2="204.33" y1="705" y2="705"/>
<ellipse cx="45.33" cy="716" 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="54.33" y="719.2104">buy(int price) const : bool</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L38" target="_top" title="AbstractFactory" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L38" xlink:show="new" xlink:title="AbstractFactory" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k4wblkcpbt7j)" height="73.6094" id="C_0001705546469218961425" style="stroke: #A80036; stroke-width: 1.5;" width="302" x="418.5" y="142"/>
<ellipse cx="515.75" cy="158" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M515.8594,153.3438 L514.7031,158.4219 L517.0313,158.4219 L515.8594,153.3438 Z M514.375,151.1094 L517.3594,151.1094 L520.7188,163.5 L518.2656,163.5 L517.5,160.4375 L514.2188,160.4375 L513.4688,163.5 L511.0313,163.5 L514.375,151.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="99" x="536.25" y="162.1543">AbstractFactory</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="419.5" x2="719.5" y1="174" y2="174"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="419.5" x2="719.5" y1="182" y2="182"/>
<ellipse cx="429.5" cy="193" 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="276" x="438.5" y="196.2104">make_a() const = 0 : std::unique_ptr&lt;ProductA&gt;</text>
<ellipse cx="429.5" cy="205.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="276" x="438.5" y="209.0151">make_b() const = 0 : std::unique_ptr&lt;ProductB&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L38" target="_top" title="AbstractFactory" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L38" xlink:show="new" xlink:title="AbstractFactory" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1de56mnd33bws)" height="73.6094" id="C_0001705546469218961425" style="stroke: #A80036; stroke-width: 1.5;" width="302" x="103.83" y="8"/>
<ellipse cx="201.08" cy="24" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M201.1894,19.3438 L200.0331,24.4219 L202.3612,24.4219 L201.1894,19.3438 Z M199.705,17.1094 L202.6894,17.1094 L206.0487,29.5 L203.5956,29.5 L202.83,26.4375 L199.5487,26.4375 L198.7987,29.5 L196.3612,29.5 L199.705,17.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="99" x="221.58" y="28.1543">AbstractFactory</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="104.83" x2="404.83" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="104.83" x2="404.83" y1="48" y2="48"/>
<ellipse cx="114.83" 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="276" x="123.83" y="62.2104">make_a() const = 0 : std::unique_ptr&lt;ProductA&gt;</text>
<ellipse cx="114.83" 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="276" x="123.83" y="75.0151">make_b() const = 0 : std::unique_ptr&lt;ProductB&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L44" target="_top" title="Factory1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L44" xlink:show="new" xlink:title="Factory1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k4wblkcpbt7j)" height="73.6094" id="C_0000692346848484854107" style="stroke: #A80036; stroke-width: 1.5;" width="280" x="157.5" y="276"/>
<ellipse cx="266.25" cy="292" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M269.2188,297.6406 Q268.6406,297.9375 268,298.0781 Q267.3594,298.2344 266.6563,298.2344 Q264.1563,298.2344 262.8281,296.5938 Q261.5156,294.9375 261.5156,291.8125 Q261.5156,288.6875 262.8281,287.0313 Q264.1563,285.375 266.6563,285.375 Q267.3594,285.375 268,285.5313 Q268.6563,285.6875 269.2188,285.9844 L269.2188,288.7031 Q268.5938,288.125 268,287.8594 Q267.4063,287.5781 266.7813,287.5781 Q265.4375,287.5781 264.75,288.6563 Q264.0625,289.7188 264.0625,291.8125 Q264.0625,293.9063 264.75,294.9844 Q265.4375,296.0469 266.7813,296.0469 Q267.4063,296.0469 268,295.7813 Q268.5938,295.5 269.2188,294.9219 L269.2188,297.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="54" x="286.75" y="296.1543">Factory1</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="158.5" x2="436.5" y1="308" y2="308"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="158.5" x2="436.5" y1="316" y2="316"/>
<ellipse cx="168.5" cy="327" 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="253" x="177.5" y="330.2104">make_a() const : std::unique_ptr&lt;ProductA&gt;</text>
<ellipse cx="168.5" cy="339.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="254" x="177.5" y="343.0151">make_b() const : std::unique_ptr&lt;ProductB&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L44" target="_top" title="Factory1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L44" xlink:show="new" xlink:title="Factory1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1de56mnd33bws)" height="73.6094" id="C_0000692346848484854107" style="stroke: #A80036; stroke-width: 1.5;" width="280" x="114.83" y="397"/>
<ellipse cx="223.58" cy="413" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M226.5487,418.6406 Q225.9706,418.9375 225.33,419.0781 Q224.6894,419.2344 223.9862,419.2344 Q221.4862,419.2344 220.1581,417.5938 Q218.8456,415.9375 218.8456,412.8125 Q218.8456,409.6875 220.1581,408.0313 Q221.4862,406.375 223.9862,406.375 Q224.6894,406.375 225.33,406.5313 Q225.9862,406.6875 226.5487,406.9844 L226.5487,409.7031 Q225.9237,409.125 225.33,408.8594 Q224.7362,408.5781 224.1112,408.5781 Q222.7675,408.5781 222.08,409.6563 Q221.3925,410.7188 221.3925,412.8125 Q221.3925,414.9063 222.08,415.9844 Q222.7675,417.0469 224.1112,417.0469 Q224.7362,417.0469 225.33,416.7813 Q225.9237,416.5 226.5487,415.9219 L226.5487,418.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="54" x="244.08" y="417.1543">Factory1</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="115.83" x2="393.83" y1="429" y2="429"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="115.83" x2="393.83" y1="437" y2="437"/>
<ellipse cx="125.83" cy="448" 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="253" x="134.83" y="451.2104">make_a() const : std::unique_ptr&lt;ProductA&gt;</text>
<ellipse cx="125.83" cy="460.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="254" x="134.83" y="464.0151">make_b() const : std::unique_ptr&lt;ProductB&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L57" target="_top" title="Factory2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00020/t00020.cc#L57" xlink:show="new" xlink:title="Factory2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k4wblkcpbt7j)" height="73.6094" id="C_0001566325870805013023" style="stroke: #A80036; stroke-width: 1.5;" width="280" x="701.5" y="276"/>
<ellipse cx="810.25" cy="292" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M813.2188,297.6406 Q812.6406,297.9375 812,298.0781 Q811.3594,298.2344 810.6563,298.2344 Q808.1563,298.2344 806.8281,296.5938 Q805.5156,294.9375 805.5156,291.8125 Q805.5156,288.6875 806.8281,287.0313 Q808.1563,285.375 810.6563,285.375 Q811.3594,285.375 812,285.5313 Q812.6563,285.6875 813.2188,285.9844 L813.2188,288.7031 Q812.5938,288.125 812,287.8594 Q811.4063,287.5781 810.7813,287.5781 Q809.4375,287.5781 808.75,288.6563 Q808.0625,289.7188 808.0625,291.8125 Q808.0625,293.9063 808.75,294.9844 Q809.4375,296.0469 810.7813,296.0469 Q811.4063,296.0469 812,295.7813 Q812.5938,295.5 813.2188,294.9219 L813.2188,297.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="54" x="830.75" y="296.1543">Factory2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="702.5" x2="980.5" y1="308" y2="308"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="702.5" x2="980.5" y1="316" y2="316"/>
<ellipse cx="712.5" cy="327" 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="253" x="721.5" y="330.2104">make_a() const : std::unique_ptr&lt;ProductA&gt;</text>
<ellipse cx="712.5" cy="339.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="254" x="721.5" y="343.0151">make_b() const : std::unique_ptr&lt;ProductB&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L57" target="_top" title="Factory2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00020/t00020.cc#L57" xlink:show="new" xlink:title="Factory2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1de56mnd33bws)" height="73.6094" id="C_0001566325870805013023" style="stroke: #A80036; stroke-width: 1.5;" width="280" x="324.83" y="786"/>
<ellipse cx="433.58" cy="802" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M436.5488,807.6406 Q435.9706,807.9375 435.33,808.0781 Q434.6894,808.2344 433.9863,808.2344 Q431.4863,808.2344 430.1581,806.5938 Q428.8456,804.9375 428.8456,801.8125 Q428.8456,798.6875 430.1581,797.0313 Q431.4863,795.375 433.9863,795.375 Q434.6894,795.375 435.33,795.5313 Q435.9863,795.6875 436.5488,795.9844 L436.5488,798.7031 Q435.9238,798.125 435.33,797.8594 Q434.7363,797.5781 434.1113,797.5781 Q432.7675,797.5781 432.08,798.6563 Q431.3925,799.7188 431.3925,801.8125 Q431.3925,803.9063 432.08,804.9844 Q432.7675,806.0469 434.1113,806.0469 Q434.7363,806.0469 435.33,805.7813 Q435.9238,805.5 436.5488,804.9219 L436.5488,807.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="54" x="454.08" y="806.1543">Factory2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="325.83" x2="603.83" y1="818" y2="818"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="325.83" x2="603.83" y1="826" y2="826"/>
<ellipse cx="335.83" cy="837" 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="253" x="344.83" y="840.2104">make_a() const : std::unique_ptr&lt;ProductA&gt;</text>
<ellipse cx="335.83" cy="849.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="254" x="344.83" y="853.0151">make_b() const : std::unique_ptr&lt;ProductB&gt;</text>
</a>
<path d="M748.87,65.81 C654.43,82.89 518.37,109.83 401.5,142 C394.41,143.95 387.1,146.13 379.79,148.43 " fill="none" id="C_0000425267229659464944&lt;-C_0001756496029797864207" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="747.74,58.9,768.66,62.27,750.21,72.68,747.74,58.9" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M931.67,93.99 C956.78,112.2 984.63,132.4 1006.73,148.43 " fill="none" id="C_0000425267229659464944&lt;-C_0001531708592885216981" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="927.31,99.48,915.23,82.07,935.53,88.15,927.31,99.48" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M337.74,88.46 C283.96,108.02 221.44,130.75 172.86,148.41 " fill="none" id="C_0002235759006374865842&lt;-C_0001465493024233223845" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="335.56,81.8,356.75,81.55,340.34,94.96,335.56,81.8" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M571.34,85.2 C622.67,102.49 683.62,123.13 738.5,142 C744.59,144.09 750.88,146.27 757.21,148.46 " fill="none" id="C_0002235759006374865842&lt;-C_0002154665562370057871" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="568.9,91.76,552.18,78.74,573.37,78.49,568.9,91.76" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M477.11,224.83 C442.76,241.51 404.26,260.19 371.74,275.97 " fill="none" id="C_0001705546469218961425&lt;-C_0000692346848484854107" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="474.13,218.5,495.17,216.07,480.24,231.1,474.13,218.5" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M661.89,224.83 C696.24,241.51 734.74,260.19 767.26,275.97 " fill="none" id="C_0001705546469218961425&lt;-C_0001566325870805013023" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="658.76,231.1,643.83,216.07,664.87,218.5,658.76,231.1" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M297.5,214.81 C297.5,233.64 297.5,256.87 297.5,275.89 " fill="none" id="C_0001756496029797864207&lt;-C_0000692346848484854107" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="297.5,209.62,293.5,218.62,297.5,214.62,301.5,218.62,297.5,209.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M142.1,212.42 C172.1,231.65 210.19,256.05 241.15,275.89 " fill="none" id="C_0001465493024233223845&lt;-C_0000692346848484854107" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="137.73,209.62,143.1574,217.8385,141.9424,212.3136,147.4672,211.0986,137.73,209.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M996.9,212.42 C966.9,231.65 928.81,256.05 897.85,275.89 " fill="none" id="C_0001531708592885216981&lt;-C_0001566325870805013023" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="1001.27,209.62,991.5328,211.0986,997.0576,212.3136,995.8426,217.8385,1001.27,209.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M841.5,214.81 C841.5,233.64 841.5,256.87 841.5,275.89 " fill="none" id="C_0002154665562370057871&lt;-C_0001566325870805013023" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="841.5,209.62,837.5,218.62,841.5,214.62,845.5,218.62,841.5,209.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M338.65,229.82 C321.48,245.33 303.09,261.93 287.92,275.62 " fill="none" id="C_0000425267229659464944&lt;-C_0001756496029797864207" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="334.09,224.51,353.63,216.3,343.47,234.9,334.09,224.51" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M448.16,230.61 C462.53,244.83 477.69,260.63 490.83,276 C526.72,317.99 563.15,370.85 584.6,403.26 " fill="none" id="C_0000425267229659464944&lt;-C_0001531708592885216981" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="443.04,235.4,433.58,216.44,452.8,225.36,443.04,235.4" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M196.47,615.69 C223.55,632.19 253.24,650.28 277.34,664.96 " fill="none" id="C_0002235759006374865842&lt;-C_0001465493024233223845" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="192.58,621.51,179.14,605.13,199.86,609.56,192.58,621.51" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M119.83,625.73 C119.83,639.15 119.83,652.95 119.83,664.62 " fill="none" id="C_0002235759006374865842&lt;-C_0002154665562370057871" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="112.83,625.3,119.83,605.3,126.83,625.3,112.83,625.3" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M292.81,82.07 C311.2,99.53 333.32,120.54 352.17,138.44 " fill="none" id="C_0001705546469218961425-&gt;C_0000425267229659464944" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="355.9,141.97,352.1244,132.8736,352.2729,138.5285,346.618,138.677,355.9,141.97" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M198.1,82.19 C177.59,98.1 156.22,118.53 142.83,142 C69.7,270.19 81.24,324.35 97.83,471 C99.89,489.17 104.06,508.91 108.23,525.74 " fill="none" id="C_0001705546469218961425-&gt;C_0002235759006374865842" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="109.52,530.86,111.2177,521.1586,108.3073,526.0093,103.4566,523.0989,109.52,530.86" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M304.82,397 C324.06,380.72 344.58,359.98 357.83,337 C378.45,301.24 387.26,254.52 391.02,221.37 " fill="none" id="C_0000692346848484854107-&gt;C_0000425267229659464944" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="391.58,216.17,386.6509,224.6967,391.0514,221.142,394.606,225.5425,391.58,216.17" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M217.94,471.07 C200.08,488.53 178.6,509.54 160.29,527.44 " fill="none" id="C_0000692346848484854107-&gt;C_0002235759006374865842" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="156.68,530.97,165.9146,527.5464,160.2582,527.4777,160.3269,521.8212,156.68,530.97" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M212.51,98.25 C170.26,157.16 116.33,255.37 151.83,337 C162.12,360.65 181.42,381.11 200.56,396.99 " fill="none" id="C_0001705546469218961425&lt;-C_0000692346848484854107" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="207.04,93.88,224.59,82.01,218.27,102.24,207.04,93.88" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M464.83,785.97 C464.83,736.9 464.83,646.31 464.83,569 C464.83,433 464.83,433 464.83,433 C464.83,355.88 433.87,270.29 412.84,221.05 " fill="none" id="C_0001566325870805013023-&gt;C_0000425267229659464944" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="410.84,216.39,410.7457,226.2384,412.8268,220.9783,418.0869,223.0595,410.84,216.39" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M324.77,810.93 C208.14,798.45 55.15,773.4 16.83,726 C-13.62,688.33 25.98,641.5 64.56,608.83 " fill="none" id="C_0001566325870805013023-&gt;C_0002235759006374865842" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="68.78,605.32,59.3092,608.0227,64.9436,608.5266,64.4397,614.1609,68.78,605.32" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M425.92,66.46 C566.58,93.96 742.83,157.87 742.83,305.5 C742.83,305.5 742.83,305.5 742.83,569 C742.83,673.41 634.24,746.14 552.79,786 " fill="none" id="C_0001705546469218961425&lt;-C_0001566325870805013023" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="424.28,73.28,405.9,62.74,426.84,59.51,424.28,73.28" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M254.83,342.38 C254.83,359.31 254.83,379.65 254.83,396.76 " fill="none" id="C_0001756496029797864207&lt;-C_0000692346848484854107" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="254.83,337.24,250.83,346.24,254.83,342.24,258.83,346.24,254.83,337.24" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M316.35,659.83 C302.89,610.65 278.37,521.03 264.7,471.08 " fill="none" id="C_0001465493024233223845&lt;-C_0000692346848484854107" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="317.69,664.76,319.1786,655.0243,316.3732,659.9365,311.461,657.1312,317.69,664.76" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M591.33,469.82 C565.09,542.88 504.5,711.55 477.83,785.8 " fill="none" id="C_0001531708592885216981&lt;-C_0001566325870805013023" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="593.16,464.72,586.3564,471.8412,591.472,469.4264,593.8867,474.542,593.16,464.72" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M206.1,727.88 C254.54,745.5 315.19,767.56 365.59,785.9 " fill="none" id="C_0002154665562370057871&lt;-C_0001566325870805013023" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="201.15,726.08,208.2528,732.9027,205.8519,727.7807,210.9739,725.3797,201.15,726.08" style="stroke: #A80036; stroke-width: 1.0;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 24 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="493px" preserveAspectRatio="none" style="width:990px;height:493px;" version="1.1" viewBox="0 0 990 493" width="990px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="fjwmj5kqztqoe" width="300%" x="-1" y="-1">
<filter height="300%" id="f175clezegae7f" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L9" target="_top" title="Visitor" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L9" xlink:show="new" xlink:title="Visitor" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjwmj5kqztqoe)" height="86.4141" id="C_0001668671110672744395" style="stroke: #A80036; stroke-width: 1.5;" width="249" x="368" y="142"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L9" target="_top" title="Visitor" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L9" xlink:show="new" xlink:title="Visitor" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f175clezegae7f)" height="86.4141" id="C_0001668671110672744395" style="stroke: #A80036; stroke-width: 1.5;" width="249" x="368" y="142"/>
<ellipse cx="469.25" cy="158" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M469.3594,153.3438 L468.2031,158.4219 L470.5313,158.4219 L469.3594,153.3438 Z M467.875,151.1094 L470.8594,151.1094 L474.2188,163.5 L471.7656,163.5 L471,160.4375 L467.7188,160.4375 L466.9688,163.5 L464.5313,163.5 L467.875,151.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="38" x="489.75" y="162.1543">Visitor</text>
@@ -23,8 +23,8 @@
<ellipse cx="379" cy="218.6094" 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="223" x="388" y="221.8198">visit_B(const B &amp; item) const = 0 : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L16" target="_top" title="Visitor1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L16" xlink:show="new" xlink:title="Visitor1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjwmj5kqztqoe)" height="73.6094" id="C_0001028369219400401946" style="stroke: #A80036; stroke-width: 1.5;" width="227" x="117" y="288"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L16" target="_top" title="Visitor1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L16" xlink:show="new" xlink:title="Visitor1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f175clezegae7f)" height="73.6094" id="C_0001028369219400401946" style="stroke: #A80036; stroke-width: 1.5;" width="227" x="117" y="288"/>
<ellipse cx="202.75" cy="304" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M205.7188,309.6406 Q205.1406,309.9375 204.5,310.0781 Q203.8594,310.2344 203.1563,310.2344 Q200.6563,310.2344 199.3281,308.5938 Q198.0156,306.9375 198.0156,303.8125 Q198.0156,300.6875 199.3281,299.0313 Q200.6563,297.375 203.1563,297.375 Q203.8594,297.375 204.5,297.5313 Q205.1563,297.6875 205.7188,297.9844 L205.7188,300.7031 Q205.0938,300.125 204.5,299.8594 Q203.9063,299.5781 203.2813,299.5781 Q201.9375,299.5781 201.25,300.6563 Q200.5625,301.7188 200.5625,303.8125 Q200.5625,305.9063 201.25,306.9844 Q201.9375,308.0469 203.2813,308.0469 Q203.9063,308.0469 204.5,307.7813 Q205.0938,307.5 205.7188,306.9219 L205.7188,309.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="47" x="223.25" y="308.1543">Visitor1</text>
@@ -35,8 +35,8 @@
<ellipse cx="128" cy="351.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="201" x="137" y="355.0151">visit_B(const B &amp; item) const : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L22" target="_top" title="Visitor2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L22" xlink:show="new" xlink:title="Visitor2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjwmj5kqztqoe)" height="73.6094" id="C_0001710373315476287130" style="stroke: #A80036; stroke-width: 1.5;" width="227" x="379" y="288"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L22" target="_top" title="Visitor2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L22" xlink:show="new" xlink:title="Visitor2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f175clezegae7f)" height="73.6094" id="C_0001710373315476287130" style="stroke: #A80036; stroke-width: 1.5;" width="227" x="379" y="288"/>
<ellipse cx="464.75" cy="304" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M467.7188,309.6406 Q467.1406,309.9375 466.5,310.0781 Q465.8594,310.2344 465.1563,310.2344 Q462.6563,310.2344 461.3281,308.5938 Q460.0156,306.9375 460.0156,303.8125 Q460.0156,300.6875 461.3281,299.0313 Q462.6563,297.375 465.1563,297.375 Q465.8594,297.375 466.5,297.5313 Q467.1563,297.6875 467.7188,297.9844 L467.7188,300.7031 Q467.0938,300.125 466.5,299.8594 Q465.9063,299.5781 465.2813,299.5781 Q463.9375,299.5781 463.25,300.6563 Q462.5625,301.7188 462.5625,303.8125 Q462.5625,305.9063 463.25,306.9844 Q463.9375,308.0469 465.2813,308.0469 Q465.9063,308.0469 466.5,307.7813 Q467.0938,307.5 467.7188,306.9219 L467.7188,309.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="47" x="485.25" y="308.1543">Visitor2</text>
@@ -47,8 +47,8 @@
<ellipse cx="390" cy="351.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="201" x="399" y="355.0151">visit_B(const B &amp; item) const : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L28" target="_top" title="Visitor3" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L28" xlink:show="new" xlink:title="Visitor3" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjwmj5kqztqoe)" height="73.6094" id="C_0001399026228179178025" style="stroke: #A80036; stroke-width: 1.5;" width="227" x="641" y="288"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L28" target="_top" title="Visitor3" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L28" xlink:show="new" xlink:title="Visitor3" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f175clezegae7f)" height="73.6094" id="C_0001399026228179178025" style="stroke: #A80036; stroke-width: 1.5;" width="227" x="641" y="288"/>
<ellipse cx="726.75" cy="304" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M729.7188,309.6406 Q729.1406,309.9375 728.5,310.0781 Q727.8594,310.2344 727.1563,310.2344 Q724.6563,310.2344 723.3281,308.5938 Q722.0156,306.9375 722.0156,303.8125 Q722.0156,300.6875 723.3281,299.0313 Q724.6563,297.375 727.1563,297.375 Q727.8594,297.375 728.5,297.5313 Q729.1563,297.6875 729.7188,297.9844 L729.7188,300.7031 Q729.0938,300.125 728.5,299.8594 Q727.9063,299.5781 727.2813,299.5781 Q725.9375,299.5781 725.25,300.6563 Q724.5625,301.7188 724.5625,303.8125 Q724.5625,305.9063 725.25,306.9844 Q725.9375,308.0469 727.2813,308.0469 Q727.9063,308.0469 728.5,307.7813 Q729.0938,307.5 729.7188,306.9219 L729.7188,309.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="47" x="747.25" y="308.1543">Visitor3</text>
@@ -59,8 +59,8 @@
<ellipse cx="652" cy="351.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="201" x="661" y="355.0151">visit_B(const B &amp; item) const : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L34" target="_top" title="Item" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L34" xlink:show="new" xlink:title="Item" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjwmj5kqztqoe)" height="73.6094" id="C_0001491568826758947722" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="349" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L34" target="_top" title="Item" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L34" xlink:show="new" xlink:title="Item" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f175clezegae7f)" height="73.6094" id="C_0001491568826758947722" style="stroke: #A80036; stroke-width: 1.5;" width="287" x="349" y="8"/>
<ellipse cx="474.25" cy="24" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M474.3594,19.3438 L473.2031,24.4219 L475.5313,24.4219 L474.3594,19.3438 Z M472.875,17.1094 L475.8594,17.1094 L479.2188,29.5 L476.7656,29.5 L476,26.4375 L472.7188,26.4375 L471.9688,29.5 L469.5313,29.5 L472.875,17.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="494.75" y="28.1543">Item</text>
@@ -71,8 +71,8 @@
<ellipse cx="360" 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="261" x="369" y="75.0151">accept(const Visitor &amp; visitor) const = 0 : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L40" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L40" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjwmj5kqztqoe)" height="60.8047" id="C_0001494142745564026823" style="stroke: #A80036; stroke-width: 1.5;" width="265" x="6" y="422"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L40" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L40" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f175clezegae7f)" height="60.8047" id="C_0001494142745564026823" style="stroke: #A80036; stroke-width: 1.5;" width="265" x="6" y="422"/>
<ellipse cx="130.25" cy="438" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M133.2188,443.6406 Q132.6406,443.9375 132,444.0781 Q131.3594,444.2344 130.6563,444.2344 Q128.1563,444.2344 126.8281,442.5938 Q125.5156,440.9375 125.5156,437.8125 Q125.5156,434.6875 126.8281,433.0313 Q128.1563,431.375 130.6563,431.375 Q131.3594,431.375 132,431.5313 Q132.6563,431.6875 133.2188,431.9844 L133.2188,434.7031 Q132.5938,434.125 132,433.8594 Q131.4063,433.5781 130.7813,433.5781 Q129.4375,433.5781 128.75,434.6563 Q128.0625,435.7188 128.0625,437.8125 Q128.0625,439.9063 128.75,440.9844 Q129.4375,442.0469 130.7813,442.0469 Q131.4063,442.0469 132,441.7813 Q132.5938,441.5 133.2188,440.9219 L133.2188,443.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="150.75" y="442.1543">A</text>
@@ -81,8 +81,8 @@
<ellipse cx="17" cy="473" 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="26" y="476.2104">accept(const Visitor &amp; visitor) const : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L45" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00021/t00021.cc#L45" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fjwmj5kqztqoe)" height="60.8047" id="C_0001452948650450999568" style="stroke: #A80036; stroke-width: 1.5;" width="265" x="714" y="422"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L45" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00021/t00021.cc#L45" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f175clezegae7f)" height="60.8047" id="C_0001452948650450999568" style="stroke: #A80036; stroke-width: 1.5;" width="265" x="714" y="422"/>
<ellipse cx="838.25" cy="438" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M841.2188,443.6406 Q840.6406,443.9375 840,444.0781 Q839.3594,444.2344 838.6563,444.2344 Q836.1563,444.2344 834.8281,442.5938 Q833.5156,440.9375 833.5156,437.8125 Q833.5156,434.6875 834.8281,433.0313 Q836.1563,431.375 838.6563,431.375 Q839.3594,431.375 840,431.5313 Q840.6563,431.6875 841.2188,431.9844 L841.2188,434.7031 Q840.5938,434.125 840,433.8594 Q839.4063,433.5781 838.7813,433.5781 Q837.4375,433.5781 836.75,434.6563 Q836.0625,435.7188 836.0625,437.8125 Q836.0625,439.9063 836.75,440.9844 Q837.4375,442.0469 838.7813,442.0469 Q839.4063,442.0469 840,441.7813 Q840.5938,441.5 841.2188,440.9219 L841.2188,443.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="858.75" y="442.1543">B</text>

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -47,9 +47,194 @@ protected:
void method1() override { }
void method2() override { }
};
}
}
} // namespace t00022
} // namespace clanguml
```
## Generated UML diagrams
![t00022_class](./t00022_class.svg "Template method pattern")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00022::A",
"id": "2012435893382068755",
"is_abstract": true,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "template_method",
"parameters": [],
"type": "void"
},
{
"access": "protected",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": true,
"is_static": false,
"is_virtual": true,
"name": "method1",
"parameters": [],
"type": "void"
},
{
"access": "protected",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": true,
"is_static": false,
"is_virtual": true,
"name": "method2",
"parameters": [],
"type": "void"
}
],
"name": "A",
"namespace": "clanguml::t00022",
"source_location": {
"file": "../../tests/t00022/t00022.cc",
"line": 6
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "2012435893382068755",
"is_virtual": false,
"name": "clanguml::t00022::A"
}
],
"display_name": "clanguml::t00022::A1",
"id": "2282061426381077447",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "protected",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "method1",
"parameters": [],
"type": "void"
},
{
"access": "protected",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "method2",
"parameters": [],
"type": "void"
}
],
"name": "A1",
"namespace": "clanguml::t00022",
"source_location": {
"file": "../../tests/t00022/t00022.cc",
"line": 19
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "2012435893382068755",
"is_virtual": false,
"name": "clanguml::t00022::A"
}
],
"display_name": "clanguml::t00022::A2",
"id": "158819862916671538",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "protected",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "method1",
"parameters": [],
"type": "void"
},
{
"access": "protected",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "method2",
"parameters": [],
"type": "void"
}
],
"name": "A2",
"namespace": "clanguml::t00022",
"source_location": {
"file": "../../tests/t00022/t00022.cc",
"line": 25
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00022_class",
"relationships": [
{
"access": "public",
"destination": "2012435893382068755",
"source": "2282061426381077447",
"type": "extension"
},
{
"access": "public",
"destination": "2012435893382068755",
"source": "158819862916671538",
"type": "extension"
}
],
"using_namespace": "clanguml::t00022"
}
```

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="238px" preserveAspectRatio="none" style="width:290px;height:238px;" version="1.1" viewBox="0 0 290 238" width="290px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="fvl8q35da9o9j" width="300%" x="-1" y="-1">
<filter height="300%" id="fy52ftsh0qym4" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00022/t00022.cc#L6" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00022/t00022.cc#L6" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fvl8q35da9o9j)" height="86.4141" id="C_0002012435893382068755" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="58.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00022/t00022.cc#L6" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00022/t00022.cc#L6" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy52ftsh0qym4)" height="86.4141" id="C_0002012435893382068755" style="stroke: #A80036; stroke-width: 1.5;" width="168" x="58.5" y="8"/>
<ellipse cx="134.25" cy="24" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M134.3594,19.3438 L133.2031,24.4219 L135.5313,24.4219 L134.3594,19.3438 Z M132.875,17.1094 L135.8594,17.1094 L139.2188,29.5 L136.7656,29.5 L136,26.4375 L132.7188,26.4375 L131.9688,29.5 L129.5313,29.5 L132.875,17.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="8" x="154.75" y="28.1543">A</text>
@@ -23,8 +23,8 @@
<polygon fill="#FFFF44" points="69.5,79.6094,73.5,83.6094,69.5,87.6094,65.5,83.6094" style="stroke: #B38D22; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="118" x="78.5" y="87.8198">method2() = 0 : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00022/t00022.cc#L19" target="_top" title="A1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00022/t00022.cc#L19" xlink:show="new" xlink:title="A1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fvl8q35da9o9j)" height="73.6094" id="C_0002282061426381077447" style="stroke: #A80036; stroke-width: 1.5;" width="119" x="6" y="154"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00022/t00022.cc#L19" target="_top" title="A1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00022/t00022.cc#L19" xlink:show="new" xlink:title="A1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy52ftsh0qym4)" height="73.6094" id="C_0002282061426381077447" style="stroke: #A80036; stroke-width: 1.5;" width="119" x="6" y="154"/>
<ellipse cx="53.25" cy="170" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M56.2188,175.6406 Q55.6406,175.9375 55,176.0781 Q54.3594,176.2344 53.6563,176.2344 Q51.1563,176.2344 49.8281,174.5938 Q48.5156,172.9375 48.5156,169.8125 Q48.5156,166.6875 49.8281,165.0313 Q51.1563,163.375 53.6563,163.375 Q54.3594,163.375 55,163.5313 Q55.6563,163.6875 56.2188,163.9844 L56.2188,166.7031 Q55.5938,166.125 55,165.8594 Q54.4063,165.5781 53.7813,165.5781 Q52.4375,165.5781 51.75,166.6563 Q51.0625,167.7188 51.0625,169.8125 Q51.0625,171.9063 51.75,172.9844 Q52.4375,174.0469 53.7813,174.0469 Q54.4063,174.0469 55,173.7813 Q55.5938,173.5 56.2188,172.9219 L56.2188,175.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="16" x="73.75" y="174.1543">A1</text>
@@ -35,8 +35,8 @@
<polygon fill="#FFFF44" points="17,212.8047,21,216.8047,17,220.8047,13,216.8047" style="stroke: #B38D22; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="26" y="221.0151">method2() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00022/t00022.cc#L25" target="_top" title="A2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00022/t00022.cc#L25" xlink:show="new" xlink:title="A2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fvl8q35da9o9j)" height="73.6094" id="C_0000158819862916671538" style="stroke: #A80036; stroke-width: 1.5;" width="119" x="160" y="154"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00022/t00022.cc#L25" target="_top" title="A2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00022/t00022.cc#L25" xlink:show="new" xlink:title="A2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy52ftsh0qym4)" height="73.6094" id="C_0000158819862916671538" style="stroke: #A80036; stroke-width: 1.5;" width="119" x="160" y="154"/>
<ellipse cx="207.25" cy="170" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M210.2188,175.6406 Q209.6406,175.9375 209,176.0781 Q208.3594,176.2344 207.6563,176.2344 Q205.1563,176.2344 203.8281,174.5938 Q202.5156,172.9375 202.5156,169.8125 Q202.5156,166.6875 203.8281,165.0313 Q205.1563,163.375 207.6563,163.375 Q208.3594,163.375 209,163.5313 Q209.6563,163.6875 210.2188,163.9844 L210.2188,166.7031 Q209.5938,166.125 209,165.8594 Q208.4063,165.5781 207.7813,165.5781 Q206.4375,165.5781 205.75,166.6563 Q205.0625,167.7188 205.0625,169.8125 Q205.0625,171.9063 205.75,172.9844 Q206.4375,174.0469 207.7813,174.0469 Q208.4063,174.0469 209,173.7813 Q209.5938,173.5 210.2188,172.9219 L210.2188,175.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="16" x="227.75" y="174.1543">A2</text>

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@@ -56,9 +56,278 @@ public:
private:
std::unique_ptr<Strategy> m_strategy;
};
}
}
} // namespace t00023
} // namespace clanguml
```
## Generated UML diagrams
![t00023_class](./t00023_class.svg "Strategy pattern")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00023::Strategy",
"id": "1469857696438841976",
"is_abstract": true,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": true,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "~Strategy",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": true,
"is_static": false,
"is_virtual": true,
"name": "algorithm",
"parameters": [],
"type": "void"
}
],
"name": "Strategy",
"namespace": "clanguml::t00023",
"source_location": {
"file": "../../tests/t00023/t00023.cc",
"line": 6
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "1469857696438841976",
"is_virtual": false,
"name": "clanguml::t00023::Strategy"
}
],
"display_name": "clanguml::t00023::StrategyA",
"id": "1245533075819635385",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "algorithm",
"parameters": [],
"type": "void"
}
],
"name": "StrategyA",
"namespace": "clanguml::t00023",
"source_location": {
"file": "../../tests/t00023/t00023.cc",
"line": 12
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "1469857696438841976",
"is_virtual": false,
"name": "clanguml::t00023::Strategy"
}
],
"display_name": "clanguml::t00023::StrategyB",
"id": "264986406899645",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "algorithm",
"parameters": [],
"type": "void"
}
],
"name": "StrategyB",
"namespace": "clanguml::t00023",
"source_location": {
"file": "../../tests/t00023/t00023.cc",
"line": 17
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "1469857696438841976",
"is_virtual": false,
"name": "clanguml::t00023::Strategy"
}
],
"display_name": "clanguml::t00023::StrategyC",
"id": "174795176193483089",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "algorithm",
"parameters": [],
"type": "void"
}
],
"name": "StrategyC",
"namespace": "clanguml::t00023",
"source_location": {
"file": "../../tests/t00023/t00023.cc",
"line": 22
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00023::Context",
"id": "2038594012979479050",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "m_strategy",
"source_location": {
"file": "../../tests/t00023/t00023.cc",
"line": 37
},
"type": "std::unique_ptr<Strategy>"
}
],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "Context",
"parameters": [
{
"name": "strategy",
"type": "std::unique_ptr<Strategy>"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "apply",
"parameters": [],
"type": "void"
}
],
"name": "Context",
"namespace": "clanguml::t00023",
"source_location": {
"file": "../../tests/t00023/t00023.cc",
"line": 27
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00023_class",
"relationships": [
{
"access": "public",
"destination": "1469857696438841976",
"source": "1245533075819635385",
"type": "extension"
},
{
"access": "public",
"destination": "1469857696438841976",
"source": "264986406899645",
"type": "extension"
},
{
"access": "public",
"destination": "1469857696438841976",
"source": "174795176193483089",
"type": "extension"
},
{
"access": "public",
"destination": "1469857696438841976",
"source": "2038594012979479050",
"type": "dependency"
},
{
"access": "private",
"destination": "1469857696438841976",
"label": "m_strategy",
"source": "2038594012979479050",
"type": "aggregation"
}
],
"using_namespace": "clanguml::t00023"
}
```

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="377px" preserveAspectRatio="none" style="width:456px;height:377px;" version="1.1" viewBox="0 0 456 377" width="456px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="fbzojka3snn3u" width="300%" x="-1" y="-1">
<filter height="300%" id="f1v4tk7sb8wn8w" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L6" target="_top" title="Strategy" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L6" xlink:show="new" xlink:title="Strategy" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fbzojka3snn3u)" height="73.6094" id="C_0001469857696438841976" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="134.5" y="171"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L6" target="_top" title="Strategy" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L6" xlink:show="new" xlink:title="Strategy" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v4tk7sb8wn8w)" height="73.6094" id="C_0001469857696438841976" style="stroke: #A80036; stroke-width: 1.5;" width="182" x="134.5" y="171"/>
<ellipse cx="194.25" cy="187" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M194.3594,182.3438 L193.2031,187.4219 L195.5313,187.4219 L194.3594,182.3438 Z M192.875,180.1094 L195.8594,180.1094 L199.2188,192.5 L196.7656,192.5 L196,189.4375 L192.7188,189.4375 L191.9688,192.5 L189.5313,192.5 L192.875,180.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="54" x="214.75" y="191.1543">Strategy</text>
@@ -21,8 +21,8 @@
<ellipse cx="145.5" cy="234.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="122" x="154.5" y="238.0151">algorithm() = 0 : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L12" target="_top" title="StrategyA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L12" xlink:show="new" xlink:title="StrategyA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fbzojka3snn3u)" height="60.8047" id="C_0001245533075819635385" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="6" y="306"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L12" target="_top" title="StrategyA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L12" xlink:show="new" xlink:title="StrategyA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v4tk7sb8wn8w)" height="60.8047" id="C_0001245533075819635385" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="6" y="306"/>
<ellipse cx="34.5" cy="322" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M37.4688,327.6406 Q36.8906,327.9375 36.25,328.0781 Q35.6094,328.2344 34.9063,328.2344 Q32.4063,328.2344 31.0781,326.5938 Q29.7656,324.9375 29.7656,321.8125 Q29.7656,318.6875 31.0781,317.0313 Q32.4063,315.375 34.9063,315.375 Q35.6094,315.375 36.25,315.5313 Q36.9063,315.6875 37.4688,315.9844 L37.4688,318.7031 Q36.8438,318.125 36.25,317.8594 Q35.6563,317.5781 35.0313,317.5781 Q33.6875,317.5781 33,318.6563 Q32.3125,319.7188 32.3125,321.8125 Q32.3125,323.9063 33,324.9844 Q33.6875,326.0469 35.0313,326.0469 Q35.6563,326.0469 36.25,325.7813 Q36.8438,325.5 37.4688,324.9219 L37.4688,327.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="61" x="51.5" y="326.1543">StrategyA</text>
@@ -31,8 +31,8 @@
<ellipse cx="17" cy="357" 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="97" x="26" y="360.2104">algorithm() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L17" target="_top" title="StrategyB" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L17" xlink:show="new" xlink:title="StrategyB" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fbzojka3snn3u)" height="60.8047" id="C_0000000264986406899645" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="164" y="306"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L17" target="_top" title="StrategyB" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L17" xlink:show="new" xlink:title="StrategyB" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v4tk7sb8wn8w)" height="60.8047" id="C_0000000264986406899645" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="164" y="306"/>
<ellipse cx="192.5" cy="322" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M195.4688,327.6406 Q194.8906,327.9375 194.25,328.0781 Q193.6094,328.2344 192.9063,328.2344 Q190.4063,328.2344 189.0781,326.5938 Q187.7656,324.9375 187.7656,321.8125 Q187.7656,318.6875 189.0781,317.0313 Q190.4063,315.375 192.9063,315.375 Q193.6094,315.375 194.25,315.5313 Q194.9063,315.6875 195.4688,315.9844 L195.4688,318.7031 Q194.8438,318.125 194.25,317.8594 Q193.6563,317.5781 193.0313,317.5781 Q191.6875,317.5781 191,318.6563 Q190.3125,319.7188 190.3125,321.8125 Q190.3125,323.9063 191,324.9844 Q191.6875,326.0469 193.0313,326.0469 Q193.6563,326.0469 194.25,325.7813 Q194.8438,325.5 195.4688,324.9219 L195.4688,327.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="61" x="209.5" y="326.1543">StrategyB</text>
@@ -41,8 +41,8 @@
<ellipse cx="175" cy="357" 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="97" x="184" y="360.2104">algorithm() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L22" target="_top" title="StrategyC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L22" xlink:show="new" xlink:title="StrategyC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fbzojka3snn3u)" height="60.8047" id="C_0000174795176193483089" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="322" y="306"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L22" target="_top" title="StrategyC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L22" xlink:show="new" xlink:title="StrategyC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v4tk7sb8wn8w)" height="60.8047" id="C_0000174795176193483089" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="322" y="306"/>
<ellipse cx="350.5" cy="322" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M353.4688,327.6406 Q352.8906,327.9375 352.25,328.0781 Q351.6094,328.2344 350.9063,328.2344 Q348.4063,328.2344 347.0781,326.5938 Q345.7656,324.9375 345.7656,321.8125 Q345.7656,318.6875 347.0781,317.0313 Q348.4063,315.375 350.9063,315.375 Q351.6094,315.375 352.25,315.5313 Q352.9063,315.6875 353.4688,315.9844 L353.4688,318.7031 Q352.8438,318.125 352.25,317.8594 Q351.6563,317.5781 351.0313,317.5781 Q349.6875,317.5781 349,318.6563 Q348.3125,319.7188 348.3125,321.8125 Q348.3125,323.9063 349,324.9844 Q349.6875,326.0469 351.0313,326.0469 Q351.6563,326.0469 352.25,325.7813 Q352.8438,325.5 353.4688,324.9219 L353.4688,327.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="61" x="367.5" y="326.1543">StrategyC</text>
@@ -51,18 +51,18 @@
<ellipse cx="333" cy="357" 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="97" x="342" y="360.2104">algorithm() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L27" target="_top" title="Context" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L27" xlink:show="new" xlink:title="Context" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fbzojka3snn3u)" height="86.4141" id="C_0002038594012979479050" style="stroke: #A80036; stroke-width: 1.5;" width="315" x="68" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L27" target="_top" title="Context" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L27" xlink:show="new" xlink:title="Context" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1v4tk7sb8wn8w)" height="86.4141" id="C_0002038594012979479050" style="stroke: #A80036; stroke-width: 1.5;" width="315" x="68" y="8"/>
<ellipse cx="197.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M200.2188,29.6406 Q199.6406,29.9375 199,30.0781 Q198.3594,30.2344 197.6563,30.2344 Q195.1563,30.2344 193.8281,28.5938 Q192.5156,26.9375 192.5156,23.8125 Q192.5156,20.6875 193.8281,19.0313 Q195.1563,17.375 197.6563,17.375 Q198.3594,17.375 199,17.5313 Q199.6563,17.6875 200.2188,17.9844 L200.2188,20.7031 Q199.5938,20.125 199,19.8594 Q198.4063,19.5781 197.7813,19.5781 Q196.4375,19.5781 195.75,20.6563 Q195.0625,21.7188 195.0625,23.8125 Q195.0625,25.9063 195.75,26.9844 Q196.4375,28.0469 197.7813,28.0469 Q198.4063,28.0469 199,27.7813 Q199.5938,27.5 200.2188,26.9219 L200.2188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="48" x="217.75" y="28.1543">Context</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="69" x2="382" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L37" target="_top" title="m_strategy" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L37" xlink:show="new" xlink:title="m_strategy" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L37" target="_top" title="m_strategy" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L37" xlink:show="new" xlink:title="m_strategy" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="74" y="46"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="76" y="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L37" target="_top" title="m_strategy" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00023/t00023.cc#L37" xlink:show="new" xlink:title="m_strategy" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L37" target="_top" title="m_strategy" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00023/t00023.cc#L37" xlink:show="new" xlink:title="m_strategy" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="228" x="88" y="54.2104">m_strategy : std::unique_ptr&lt;Strategy&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="69" x2="382" y1="60.8047" y2="60.8047"/>

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -55,9 +55,293 @@ public:
private:
std::shared_ptr<Target> m_target;
};
}
}
} // namespace t00024
} // namespace clanguml
```
## Generated UML diagrams
![t00024_class](./t00024_class.svg "Proxy pattern")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00024::Target",
"id": "1116408959993110019",
"is_abstract": true,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": true,
"is_static": false,
"is_virtual": true,
"name": "~Target",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": true,
"is_static": false,
"is_virtual": true,
"name": "m1",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": true,
"is_static": false,
"is_virtual": true,
"name": "m2",
"parameters": [],
"type": "void"
}
],
"name": "Target",
"namespace": "clanguml::t00024",
"source_location": {
"file": "../../tests/t00024/t00024.cc",
"line": 6
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "1116408959993110019",
"is_virtual": false,
"name": "clanguml::t00024::Target"
}
],
"display_name": "clanguml::t00024::Target1",
"id": "669517069151826610",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "m1",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "m2",
"parameters": [],
"type": "void"
}
],
"name": "Target1",
"namespace": "clanguml::t00024",
"source_location": {
"file": "../../tests/t00024/t00024.cc",
"line": 14
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "1116408959993110019",
"is_virtual": false,
"name": "clanguml::t00024::Target"
}
],
"display_name": "clanguml::t00024::Target2",
"id": "1210513233906695933",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "m1",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "m2",
"parameters": [],
"type": "void"
}
],
"name": "Target2",
"namespace": "clanguml::t00024",
"source_location": {
"file": "../../tests/t00024/t00024.cc",
"line": 20
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "1116408959993110019",
"is_virtual": false,
"name": "clanguml::t00024::Target"
}
],
"display_name": "clanguml::t00024::Proxy",
"id": "594707401639991215",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "m_target",
"source_location": {
"file": "../../tests/t00024/t00024.cc",
"line": 36
},
"type": "std::shared_ptr<Target>"
}
],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "Proxy",
"parameters": [
{
"name": "target",
"type": "std::shared_ptr<Target>"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "m1",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": true,
"name": "m2",
"parameters": [],
"type": "void"
}
],
"name": "Proxy",
"namespace": "clanguml::t00024",
"source_location": {
"file": "../../tests/t00024/t00024.cc",
"line": 26
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00024_class",
"relationships": [
{
"access": "public",
"destination": "1116408959993110019",
"source": "669517069151826610",
"type": "extension"
},
{
"access": "public",
"destination": "1116408959993110019",
"source": "1210513233906695933",
"type": "extension"
},
{
"access": "public",
"destination": "1116408959993110019",
"source": "594707401639991215",
"type": "dependency"
},
{
"access": "private",
"destination": "1116408959993110019",
"label": "m_target",
"source": "594707401639991215",
"type": "association"
},
{
"access": "public",
"destination": "1116408959993110019",
"source": "594707401639991215",
"type": "extension"
}
],
"using_namespace": "clanguml::t00024"
}
```

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="281px" preserveAspectRatio="none" style="width:542px;height:281px;" version="1.1" viewBox="0 0 542 281" width="542px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1tovqa1jl5uwe" width="300%" x="-1" y="-1">
<filter height="300%" id="f1w3g3yw290e03" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L6" target="_top" title="Target" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L6" xlink:show="new" xlink:title="Target" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1tovqa1jl5uwe)" height="86.4141" id="C_0001116408959993110019" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="245.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L6" target="_top" title="Target" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L6" xlink:show="new" xlink:title="Target" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1w3g3yw290e03)" height="86.4141" id="C_0001116408959993110019" style="stroke: #A80036; stroke-width: 1.5;" width="140" x="245.5" y="8"/>
<ellipse cx="290.75" cy="24" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M290.8594,19.3438 L289.7031,24.4219 L292.0313,24.4219 L290.8594,19.3438 Z M289.375,17.1094 L292.3594,17.1094 L295.7188,29.5 L293.2656,29.5 L292.5,26.4375 L289.2188,26.4375 L288.4688,29.5 L286.0313,29.5 L289.375,17.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="41" x="311.25" y="28.1543">Target</text>
@@ -23,8 +23,8 @@
<ellipse cx="256.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" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="86" x="265.5" y="87.8198">m2() = 0 : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L14" target="_top" title="Target1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L14" xlink:show="new" xlink:title="Target1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1tovqa1jl5uwe)" height="73.6094" id="C_0000669517069151826610" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="6" y="183.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L14" target="_top" title="Target1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L14" xlink:show="new" xlink:title="Target1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1w3g3yw290e03)" height="73.6094" id="C_0000669517069151826610" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="6" y="183.5"/>
<ellipse cx="23.7" cy="199.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M26.6688,205.1406 Q26.0906,205.4375 25.45,205.5781 Q24.8094,205.7344 24.1063,205.7344 Q21.6063,205.7344 20.2781,204.0938 Q18.9656,202.4375 18.9656,199.3125 Q18.9656,196.1875 20.2781,194.5313 Q21.6063,192.875 24.1063,192.875 Q24.8094,192.875 25.45,193.0313 Q26.1063,193.1875 26.6688,193.4844 L26.6688,196.2031 Q26.0438,195.625 25.45,195.3594 Q24.8563,195.0781 24.2313,195.0781 Q22.8875,195.0781 22.2,196.1563 Q21.5125,197.2188 21.5125,199.3125 Q21.5125,201.4063 22.2,202.4844 Q22.8875,203.5469 24.2313,203.5469 Q24.8563,203.5469 25.45,203.2813 Q26.0438,203 26.6688,202.4219 L26.6688,205.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="38.3" y="203.6543">Target1</text>
@@ -35,8 +35,8 @@
<ellipse cx="17" cy="247.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="61" x="26" y="250.5151">m2() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L20" target="_top" title="Target2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L20" xlink:show="new" xlink:title="Target2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1tovqa1jl5uwe)" height="73.6094" id="C_0001210513233906695933" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="128" y="183.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L20" target="_top" title="Target2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L20" xlink:show="new" xlink:title="Target2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1w3g3yw290e03)" height="73.6094" id="C_0001210513233906695933" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="128" y="183.5"/>
<ellipse cx="145.7" cy="199.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M148.6688,205.1406 Q148.0906,205.4375 147.45,205.5781 Q146.8094,205.7344 146.1063,205.7344 Q143.6063,205.7344 142.2781,204.0938 Q140.9656,202.4375 140.9656,199.3125 Q140.9656,196.1875 142.2781,194.5313 Q143.6063,192.875 146.1063,192.875 Q146.8094,192.875 147.45,193.0313 Q148.1063,193.1875 148.6688,193.4844 L148.6688,196.2031 Q148.0438,195.625 147.45,195.3594 Q146.8563,195.0781 146.2313,195.0781 Q144.8875,195.0781 144.2,196.1563 Q143.5125,197.2188 143.5125,199.3125 Q143.5125,201.4063 144.2,202.4844 Q144.8875,203.5469 146.2313,203.5469 Q146.8563,203.5469 147.45,203.2813 Q148.0438,203 148.6688,202.4219 L148.6688,205.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="160.3" y="203.6543">Target2</text>
@@ -47,18 +47,18 @@
<ellipse cx="139" cy="247.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="61" x="148" y="250.5151">m2() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L26" target="_top" title="Proxy" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L26" xlink:show="new" xlink:title="Proxy" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1tovqa1jl5uwe)" height="99.2188" id="C_0000594707401639991215" style="stroke: #A80036; stroke-width: 1.5;" width="281" x="250" y="171"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L26" target="_top" title="Proxy" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L26" xlink:show="new" xlink:title="Proxy" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1w3g3yw290e03)" height="99.2188" id="C_0000594707401639991215" style="stroke: #A80036; stroke-width: 1.5;" width="281" x="250" y="171"/>
<ellipse cx="369.75" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M372.7188,192.6406 Q372.1406,192.9375 371.5,193.0781 Q370.8594,193.2344 370.1563,193.2344 Q367.6563,193.2344 366.3281,191.5938 Q365.0156,189.9375 365.0156,186.8125 Q365.0156,183.6875 366.3281,182.0313 Q367.6563,180.375 370.1563,180.375 Q370.8594,180.375 371.5,180.5313 Q372.1563,180.6875 372.7188,180.9844 L372.7188,183.7031 Q372.0938,183.125 371.5,182.8594 Q370.9063,182.5781 370.2813,182.5781 Q368.9375,182.5781 368.25,183.6563 Q367.5625,184.7188 367.5625,186.8125 Q367.5625,188.9063 368.25,189.9844 Q368.9375,191.0469 370.2813,191.0469 Q370.9063,191.0469 371.5,190.7813 Q372.0938,190.5 372.7188,189.9219 L372.7188,192.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="390.25" y="191.1543">Proxy</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="530" y1="203" y2="203"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L36" target="_top" title="m_target" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L36" xlink:show="new" xlink:title="m_target" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L36" target="_top" title="m_target" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L36" xlink:show="new" xlink:title="m_target" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="256" y="209"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="258" y="211"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L36" target="_top" title="m_target" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00024/t00024.cc#L36" xlink:show="new" xlink:title="m_target" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L36" target="_top" title="m_target" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00024/t00024.cc#L36" xlink:show="new" xlink:title="m_target" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="206" x="270" y="217.2104">m_target : std::shared_ptr&lt;Target&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="530" y1="223.8047" y2="223.8047"/>

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -53,9 +53,316 @@ public:
Proxy<Target1> proxy1;
Proxy<Target2> proxy2;
};
}
}
} // namespace t00025
} // namespace clanguml
```
## Generated UML diagrams
![t00025_class](./t00025_class.svg "Template proxy pattern")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00025::Target1",
"id": "1573849034571194138",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "m1",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "m2",
"parameters": [],
"type": "void"
}
],
"name": "Target1",
"namespace": "clanguml::t00025",
"source_location": {
"file": "../../tests/t00025/t00025.cc",
"line": 6
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00025::Target2",
"id": "751896409461834669",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "m1",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "m2",
"parameters": [],
"type": "void"
}
],
"name": "Target2",
"namespace": "clanguml::t00025",
"source_location": {
"file": "../../tests/t00025/t00025.cc",
"line": 12
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00025::Proxy<T>",
"id": "1483353300536405088",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "m_target",
"source_location": {
"file": "../../tests/t00025/t00025.cc",
"line": 28
},
"type": "std::shared_ptr<T>"
}
],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "Proxy<T>",
"parameters": [
{
"name": "target",
"type": "std::shared_ptr<T>"
}
],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "m1",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "m2",
"parameters": [],
"type": "void"
}
],
"name": "Proxy",
"namespace": "clanguml::t00025",
"source_location": {
"file": "../../tests/t00025/t00025.cc",
"line": 18
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00025::Proxy<clanguml::t00025::Target1>",
"id": "1644966842838139424",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Proxy",
"namespace": "clanguml::t00025",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "clanguml::t00025::Target1"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00025::Proxy<clanguml::t00025::Target2>",
"id": "1190103100236298763",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Proxy",
"namespace": "clanguml::t00025",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "clanguml::t00025::Target2"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00025::ProxyHolder",
"id": "1906317303950647748",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "proxy1",
"source_location": {
"file": "../../tests/t00025/t00025.cc",
"line": 33
},
"type": "Proxy<clanguml::t00025::Target1>"
},
{
"access": "public",
"is_static": false,
"name": "proxy2",
"source_location": {
"file": "../../tests/t00025/t00025.cc",
"line": 34
},
"type": "Proxy<clanguml::t00025::Target2>"
}
],
"methods": [],
"name": "ProxyHolder",
"namespace": "clanguml::t00025",
"source_location": {
"file": "../../tests/t00025/t00025.cc",
"line": 31
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00025_class",
"relationships": [
{
"access": "public",
"destination": "1573849034571194138",
"source": "1644966842838139424",
"type": "dependency"
},
{
"access": "public",
"destination": "1483353300536405088",
"source": "1644966842838139424",
"type": "instantiation"
},
{
"access": "public",
"destination": "751896409461834669",
"source": "1190103100236298763",
"type": "dependency"
},
{
"access": "public",
"destination": "1483353300536405088",
"source": "1190103100236298763",
"type": "instantiation"
},
{
"access": "public",
"destination": "1644966842838139424",
"label": "proxy1",
"source": "1906317303950647748",
"type": "aggregation"
},
{
"access": "public",
"destination": "1190103100236298763",
"label": "proxy2",
"source": "1906317303950647748",
"type": "aggregation"
}
],
"using_namespace": "clanguml::t00025"
}
```

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="378px" preserveAspectRatio="none" style="width:538px;height:378px;" version="1.1" viewBox="0 0 538 378" width="538px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f16v6mrd0xikr3" width="300%" x="-1" y="-1">
<filter height="300%" id="f242fbtg6fqv2" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L6" target="_top" title="Target1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L6" xlink:show="new" xlink:title="Target1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16v6mrd0xikr3)" height="73.6094" id="C_0001573849034571194138" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="6" y="280.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L6" target="_top" title="Target1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L6" xlink:show="new" xlink:title="Target1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f242fbtg6fqv2)" height="73.6094" id="C_0001573849034571194138" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="6" y="280.5"/>
<ellipse cx="23.7" cy="296.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M26.6688,302.1406 Q26.0906,302.4375 25.45,302.5781 Q24.8094,302.7344 24.1063,302.7344 Q21.6063,302.7344 20.2781,301.0938 Q18.9656,299.4375 18.9656,296.3125 Q18.9656,293.1875 20.2781,291.5313 Q21.6063,289.875 24.1063,289.875 Q24.8094,289.875 25.45,290.0313 Q26.1063,290.1875 26.6688,290.4844 L26.6688,293.2031 Q26.0438,292.625 25.45,292.3594 Q24.8563,292.0781 24.2313,292.0781 Q22.8875,292.0781 22.2,293.1563 Q21.5125,294.2188 21.5125,296.3125 Q21.5125,298.4063 22.2,299.4844 Q22.8875,300.5469 24.2313,300.5469 Q24.8563,300.5469 25.45,300.2813 Q26.0438,300 26.6688,299.4219 L26.6688,302.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="38.3" y="300.6543">Target1</text>
@@ -21,8 +21,8 @@
<ellipse cx="17" cy="344.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="61" x="26" y="347.5151">m2() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L12" target="_top" title="Target2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L12" xlink:show="new" xlink:title="Target2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16v6mrd0xikr3)" height="73.6094" id="C_0000751896409461834669" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="440" y="280.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L12" target="_top" title="Target2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L12" xlink:show="new" xlink:title="Target2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f242fbtg6fqv2)" height="73.6094" id="C_0000751896409461834669" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="440" y="280.5"/>
<ellipse cx="457.7" cy="296.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M460.6688,302.1406 Q460.0906,302.4375 459.45,302.5781 Q458.8094,302.7344 458.1063,302.7344 Q455.6063,302.7344 454.2781,301.0938 Q452.9656,299.4375 452.9656,296.3125 Q452.9656,293.1875 454.2781,291.5313 Q455.6063,289.875 458.1063,289.875 Q458.8094,289.875 459.45,290.0313 Q460.1063,290.1875 460.6688,290.4844 L460.6688,293.2031 Q460.0438,292.625 459.45,292.3594 Q458.8563,292.0781 458.2313,292.0781 Q456.8875,292.0781 456.2,293.1563 Q455.5125,294.2188 455.5125,296.3125 Q455.5125,298.4063 456.2,299.4844 Q456.8875,300.5469 458.2313,300.5469 Q458.8563,300.5469 459.45,300.2813 Q460.0438,300 460.6688,299.4219 L460.6688,302.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="472.3" y="300.6543">Target2</text>
@@ -33,8 +33,8 @@
<ellipse cx="451" cy="344.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="61" x="460" y="347.5151">m2() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L18" target="_top" title="Proxy" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L18" xlink:show="new" xlink:title="Proxy" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16v6mrd0xikr3)" height="99.2188" id="C_0001483353300536405088" style="stroke: #A80036; stroke-width: 1.5;" width="276" x="128.5" y="268"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L18" target="_top" title="Proxy" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L18" xlink:show="new" xlink:title="Proxy" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f242fbtg6fqv2)" height="99.2188" id="C_0001483353300536405088" style="stroke: #A80036; stroke-width: 1.5;" width="276" x="128.5" y="268"/>
<ellipse cx="240.25" cy="284" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M243.2188,289.6406 Q242.6406,289.9375 242,290.0781 Q241.3594,290.2344 240.6563,290.2344 Q238.1563,290.2344 236.8281,288.5938 Q235.5156,286.9375 235.5156,283.8125 Q235.5156,280.6875 236.8281,279.0313 Q238.1563,277.375 240.6563,277.375 Q241.3594,277.375 242,277.5313 Q242.6563,277.6875 243.2188,277.9844 L243.2188,280.7031 Q242.5938,280.125 242,279.8594 Q241.4063,279.5781 240.7813,279.5781 Q239.4375,279.5781 238.75,280.6563 Q238.0625,281.7188 238.0625,283.8125 Q238.0625,285.9063 238.75,286.9844 Q239.4375,288.0469 240.7813,288.0469 Q241.4063,288.0469 242,287.7813 Q242.5938,287.5 243.2188,286.9219 L243.2188,289.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="260.75" y="288.1543">Proxy</text>
@@ -42,11 +42,11 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="399.5" y="277.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="129.5" x2="403.5" y1="300" y2="300"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L28" target="_top" title="m_target" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L28" xlink:show="new" xlink:title="m_target" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L28" target="_top" title="m_target" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L28" xlink:show="new" xlink:title="m_target" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="134.5" y="306"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="136.5" y="308"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L28" target="_top" title="m_target" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L28" xlink:show="new" xlink:title="m_target" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L28" target="_top" title="m_target" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L28" xlink:show="new" xlink:title="m_target" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="176" x="148.5" y="314.2104">m_target : std::shared_ptr&lt;T&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="129.5" x2="403.5" y1="320.8047" y2="320.8047"/>
@@ -56,7 +56,7 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="148.5" y="347.8198">m1() : void</text>
<ellipse cx="139.5" cy="357.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="61" x="148.5" y="360.6245">m2() : void</text>
<rect fill="#FEFECE" filter="url(#f16v6mrd0xikr3)" height="48" id="C_0001644966842838139424" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="131.5" y="159"/>
<rect fill="#FEFECE" filter="url(#f242fbtg6fqv2)" height="48" id="C_0001644966842838139424" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="131.5" y="159"/>
<ellipse cx="146.5" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M149.4688,180.6406 Q148.8906,180.9375 148.25,181.0781 Q147.6094,181.2344 146.9063,181.2344 Q144.4063,181.2344 143.0781,179.5938 Q141.7656,177.9375 141.7656,174.8125 Q141.7656,171.6875 143.0781,170.0313 Q144.4063,168.375 146.9063,168.375 Q147.6094,168.375 148.25,168.5313 Q148.9063,168.6875 149.4688,168.9844 L149.4688,171.7031 Q148.8438,171.125 148.25,170.8594 Q147.6563,170.5781 147.0313,170.5781 Q145.6875,170.5781 145,171.6563 Q144.3125,172.7188 144.3125,174.8125 Q144.3125,176.9063 145,177.9844 Q145.6875,179.0469 147.0313,179.0469 Q147.6563,179.0469 148.25,178.7813 Q148.8438,178.5 149.4688,177.9219 L149.4688,180.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="160.5" y="179.1543">Proxy</text>
@@ -64,7 +64,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="49" x="202.5" y="168.1387">Target1</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="132.5" x2="248.5" y1="191" y2="191"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="132.5" x2="248.5" y1="199" y2="199"/>
<rect fill="#FEFECE" filter="url(#f16v6mrd0xikr3)" height="48" id="C_0001190103100236298763" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="284.5" y="159"/>
<rect fill="#FEFECE" filter="url(#f242fbtg6fqv2)" height="48" id="C_0001190103100236298763" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="284.5" y="159"/>
<ellipse cx="299.5" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M302.4688,180.6406 Q301.8906,180.9375 301.25,181.0781 Q300.6094,181.2344 299.9063,181.2344 Q297.4063,181.2344 296.0781,179.5938 Q294.7656,177.9375 294.7656,174.8125 Q294.7656,171.6875 296.0781,170.0313 Q297.4063,168.375 299.9063,168.375 Q300.6094,168.375 301.25,168.5313 Q301.9063,168.6875 302.4688,168.9844 L302.4688,171.7031 Q301.8438,171.125 301.25,170.8594 Q300.6563,170.5781 300.0313,170.5781 Q298.6875,170.5781 298,171.6563 Q297.3125,172.7188 297.3125,174.8125 Q297.3125,176.9063 298,177.9844 Q298.6875,179.0469 300.0313,179.0469 Q300.6563,179.0469 301.25,178.7813 Q301.8438,178.5 302.4688,177.9219 L302.4688,180.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="313.5" y="179.1543">Proxy</text>
@@ -72,25 +72,25 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="49" x="355.5" y="168.1387">Target2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="285.5" x2="401.5" y1="191" y2="191"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="285.5" x2="401.5" y1="199" y2="199"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L31" target="_top" title="ProxyHolder" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L31" xlink:show="new" xlink:title="ProxyHolder" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16v6mrd0xikr3)" height="73.6094" id="C_0001906317303950647748" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="182" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L31" target="_top" title="ProxyHolder" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L31" xlink:show="new" xlink:title="ProxyHolder" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f242fbtg6fqv2)" height="73.6094" id="C_0001906317303950647748" style="stroke: #A80036; stroke-width: 1.5;" width="169" x="182" y="8"/>
<ellipse cx="225.35" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M228.3188,29.6406 Q227.7406,29.9375 227.1,30.0781 Q226.4594,30.2344 225.7563,30.2344 Q223.2563,30.2344 221.9281,28.5938 Q220.6156,26.9375 220.6156,23.8125 Q220.6156,20.6875 221.9281,19.0313 Q223.2563,17.375 225.7563,17.375 Q226.4594,17.375 227.1,17.5313 Q227.7563,17.6875 228.3188,17.9844 L228.3188,20.7031 Q227.6938,20.125 227.1,19.8594 Q226.5063,19.5781 225.8813,19.5781 Q224.5375,19.5781 223.85,20.6563 Q223.1625,21.7188 223.1625,23.8125 Q223.1625,25.9063 223.85,26.9844 Q224.5375,28.0469 225.8813,28.0469 Q226.5063,28.0469 227.1,27.7813 Q227.6938,27.5 228.3188,26.9219 L228.3188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="74" x="245.65" y="28.1543">ProxyHolder</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="183" x2="350" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L33" target="_top" title="proxy1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L33" xlink:show="new" xlink:title="proxy1" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L33" target="_top" title="proxy1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L33" xlink:show="new" xlink:title="proxy1" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="188" y="46"/>
<ellipse cx="193" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L33" target="_top" title="proxy1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L33" xlink:show="new" xlink:title="proxy1" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L33" target="_top" title="proxy1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L33" xlink:show="new" xlink:title="proxy1" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="202" y="54.2104">proxy1 : Proxy&lt;Target1&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L34" target="_top" title="proxy2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L34" xlink:show="new" xlink:title="proxy2" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L34" target="_top" title="proxy2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L34" xlink:show="new" xlink:title="proxy2" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="188" y="58.8047"/>
<ellipse cx="193" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L34" target="_top" title="proxy2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00025/t00025.cc#L34" xlink:show="new" xlink:title="proxy2" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L34" target="_top" title="proxy2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00025/t00025.cc#L34" xlink:show="new" xlink:title="proxy2" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="202" y="67.0151">proxy2 : Proxy&lt;Target2&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="183" x2="350" y1="73.6094" y2="73.6094"/>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -74,9 +74,412 @@ struct StringMemento {
Caretaker<std::string> caretaker;
Originator<std::string> originator;
};
}
}
} // namespace t00026
} // namespace clanguml
```
## Generated UML diagrams
![t00026_class](./t00026_class.svg "Template memento pattern")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00026::Memento<T>",
"id": "1241204213727905390",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "m_value",
"source_location": {
"file": "../../tests/t00026/t00026.cc",
"line": 18
},
"type": "T"
}
],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "Memento<T>",
"parameters": [
{
"name": "v",
"type": "T &&"
}
],
"type": "void"
},
{
"access": "public",
"is_const": true,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "value",
"parameters": [],
"type": "T"
}
],
"name": "Memento",
"namespace": "clanguml::t00026",
"source_location": {
"file": "../../tests/t00026/t00026.cc",
"line": 8
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00026::Originator<T>",
"id": "1324770803720816727",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "m_value",
"source_location": {
"file": "../../tests/t00026/t00026.cc",
"line": 37
},
"type": "T"
}
],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "Originator<T>",
"parameters": [
{
"name": "v",
"type": "T &&"
}
],
"type": "void"
},
{
"access": "public",
"is_const": true,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "memoize_value",
"parameters": [],
"type": "Memento<T>"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "load",
"parameters": [
{
"name": "m",
"type": "const Memento<T> &"
}
],
"type": "void"
},
{
"access": "public",
"is_const": true,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "print",
"parameters": [],
"type": "void"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "set",
"parameters": [
{
"name": "v",
"type": "T &&"
}
],
"type": "void"
}
],
"name": "Originator",
"namespace": "clanguml::t00026",
"source_location": {
"file": "../../tests/t00026/t00026.cc",
"line": 21
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00026::Caretaker<T>",
"id": "2032715387182792204",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "m_mementos",
"source_location": {
"file": "../../tests/t00026/t00026.cc",
"line": 50
},
"type": "std::unordered_map<std::string,Memento<T>>"
}
],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "state",
"parameters": [
{
"name": "n",
"type": "const std::string &"
}
],
"type": "Memento<T> &"
},
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "set_state",
"parameters": [
{
"name": "s",
"type": "const std::string &"
},
{
"name": "m",
"type": "Memento<T> &&"
}
],
"type": "void"
}
],
"name": "Caretaker",
"namespace": "clanguml::t00026",
"source_location": {
"file": "../../tests/t00026/t00026.cc",
"line": 40
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00026::Caretaker<std::string>",
"id": "1708482137721157489",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Caretaker",
"namespace": "clanguml::t00026",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "std::string"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00026::Originator<std::string>",
"id": "1014247960805363560",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Originator",
"namespace": "clanguml::t00026",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "std::string"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00026::StringMemento",
"id": "851750942915129289",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "caretaker",
"source_location": {
"file": "../../tests/t00026/t00026.cc",
"line": 54
},
"type": "Caretaker<std::string>"
},
{
"access": "public",
"is_static": false,
"name": "originator",
"source_location": {
"file": "../../tests/t00026/t00026.cc",
"line": 55
},
"type": "Originator<std::string>"
}
],
"methods": [],
"name": "StringMemento",
"namespace": "clanguml::t00026",
"source_location": {
"file": "../../tests/t00026/t00026.cc",
"line": 53
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00026_class",
"relationships": [
{
"access": "public",
"destination": "1241204213727905390",
"source": "1324770803720816727",
"type": "dependency"
},
{
"access": "public",
"destination": "1241204213727905390",
"source": "2032715387182792204",
"type": "dependency"
},
{
"access": "private",
"destination": "1241204213727905390",
"label": "m_mementos",
"source": "2032715387182792204",
"type": "aggregation"
},
{
"access": "public",
"destination": "2032715387182792204",
"source": "1708482137721157489",
"type": "instantiation"
},
{
"access": "public",
"destination": "1324770803720816727",
"source": "1014247960805363560",
"type": "instantiation"
},
{
"access": "public",
"destination": "1708482137721157489",
"label": "caretaker",
"source": "851750942915129289",
"type": "aggregation"
},
{
"access": "public",
"destination": "1014247960805363560",
"label": "originator",
"source": "851750942915129289",
"type": "aggregation"
}
],
"using_namespace": "clanguml::t00026"
}
```

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="567px" preserveAspectRatio="none" style="width:690px;height:567px;" version="1.1" viewBox="0 0 690 567" width="690px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f4evlilcissuo" width="300%" x="-1" y="-1">
<filter height="300%" id="f1i9lyvkxv8y6j" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L8" target="_top" title="Memento" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L8" xlink:show="new" xlink:title="Memento" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f4evlilcissuo)" height="86.4141" id="C_0001241204213727905390" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="165.5" y="470"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L8" target="_top" title="Memento" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L8" xlink:show="new" xlink:title="Memento" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1i9lyvkxv8y6j)" height="86.4141" id="C_0001241204213727905390" style="stroke: #A80036; stroke-width: 1.5;" width="187" x="165.5" y="470"/>
<ellipse cx="220.25" cy="486" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M223.2188,491.6406 Q222.6406,491.9375 222,492.0781 Q221.3594,492.2344 220.6563,492.2344 Q218.1563,492.2344 216.8281,490.5938 Q215.5156,488.9375 215.5156,485.8125 Q215.5156,482.6875 216.8281,481.0313 Q218.1563,479.375 220.6563,479.375 Q221.3594,479.375 222,479.5313 Q222.6563,479.6875 223.2188,479.9844 L223.2188,482.7031 Q222.5938,482.125 222,481.8594 Q221.4063,481.5781 220.7813,481.5781 Q219.4375,481.5781 218.75,482.6563 Q218.0625,483.7188 218.0625,485.8125 Q218.0625,487.9063 218.75,488.9844 Q219.4375,490.0469 220.7813,490.0469 Q221.4063,490.0469 222,489.7813 Q222.5938,489.5 223.2188,488.9219 L223.2188,491.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="58" x="240.75" y="490.1543">Memento</text>
@@ -18,11 +18,11 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="347.5" y="479.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="166.5" x2="351.5" y1="502" y2="502"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L18" target="_top" title="m_value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L18" xlink:show="new" xlink:title="m_value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L18" target="_top" title="m_value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L18" xlink:show="new" xlink:title="m_value" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="171.5" y="508"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="173.5" y="510"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L18" target="_top" title="m_value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L18" xlink:show="new" xlink:title="m_value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L18" target="_top" title="m_value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L18" xlink:show="new" xlink:title="m_value" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="185.5" y="516.2104">m_value : T</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="166.5" x2="351.5" y1="522.8047" y2="522.8047"/>
@@ -30,8 +30,8 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="161" x="185.5" y="537.0151">Memento&lt;T&gt;(T &amp;&amp; v) : void</text>
<ellipse cx="176.5" cy="546.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="92" x="185.5" y="549.8198">value() const : T</text>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L21" target="_top" title="Originator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L21" xlink:show="new" xlink:title="Originator" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f4evlilcissuo)" height="124.8281" id="C_0001324770803720816727" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="431.5" y="268"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L21" target="_top" title="Originator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L21" xlink:show="new" xlink:title="Originator" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1i9lyvkxv8y6j)" height="124.8281" id="C_0001324770803720816727" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="431.5" y="268"/>
<ellipse cx="513.25" cy="284" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M516.2188,289.6406 Q515.6406,289.9375 515,290.0781 Q514.3594,290.2344 513.6563,290.2344 Q511.1563,290.2344 509.8281,288.5938 Q508.5156,286.9375 508.5156,283.8125 Q508.5156,280.6875 509.8281,279.0313 Q511.1563,277.375 513.6563,277.375 Q514.3594,277.375 515,277.5313 Q515.6563,277.6875 516.2188,277.9844 L516.2188,280.7031 Q515.5938,280.125 515,279.8594 Q514.4063,279.5781 513.7813,279.5781 Q512.4375,279.5781 511.75,280.6563 Q511.0625,281.7188 511.0625,283.8125 Q511.0625,285.9063 511.75,286.9844 Q512.4375,288.0469 513.7813,288.0469 Q514.4063,288.0469 515,287.7813 Q515.5938,287.5 516.2188,286.9219 L516.2188,289.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="533.75" y="288.1543">Originator</text>
@@ -39,11 +39,11 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="671.5" y="277.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="432.5" x2="675.5" y1="300" y2="300"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L37" target="_top" title="m_value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L37" xlink:show="new" xlink:title="m_value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L37" target="_top" title="m_value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L37" xlink:show="new" xlink:title="m_value" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="437.5" y="306"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="439.5" y="308"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L37" target="_top" title="m_value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L37" xlink:show="new" xlink:title="m_value" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L37" target="_top" title="m_value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L37" xlink:show="new" xlink:title="m_value" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="451.5" y="314.2104">m_value : T</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="432.5" x2="675.5" y1="320.8047" y2="320.8047"/>
@@ -57,8 +57,8 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="451.5" y="373.4292">print() const : void</text>
<ellipse cx="442.5" cy="383.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="102" x="451.5" y="386.2339">set(T &amp;&amp; v) : void</text>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L40" target="_top" title="Caretaker" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L40" xlink:show="new" xlink:title="Caretaker" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f4evlilcissuo)" height="86.4141" id="C_0002032715387182792204" style="stroke: #A80036; stroke-width: 1.5;" width="390" x="6" y="287.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L40" target="_top" title="Caretaker" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L40" xlink:show="new" xlink:title="Caretaker" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1i9lyvkxv8y6j)" height="86.4141" id="C_0002032715387182792204" style="stroke: #A80036; stroke-width: 1.5;" width="390" x="6" y="287.5"/>
<ellipse cx="160.25" cy="303.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M163.2188,309.1406 Q162.6406,309.4375 162,309.5781 Q161.3594,309.7344 160.6563,309.7344 Q158.1563,309.7344 156.8281,308.0938 Q155.5156,306.4375 155.5156,303.3125 Q155.5156,300.1875 156.8281,298.5313 Q158.1563,296.875 160.6563,296.875 Q161.3594,296.875 162,297.0313 Q162.6563,297.1875 163.2188,297.4844 L163.2188,300.2031 Q162.5938,299.625 162,299.3594 Q161.4063,299.0781 160.7813,299.0781 Q159.4375,299.0781 158.75,300.1563 Q158.0625,301.2188 158.0625,303.3125 Q158.0625,305.4063 158.75,306.4844 Q159.4375,307.5469 160.7813,307.5469 Q161.4063,307.5469 162,307.2813 Q162.5938,307 163.2188,306.4219 L163.2188,309.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="180.75" y="307.6543">Caretaker</text>
@@ -66,11 +66,11 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="391" y="296.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="395" y1="319.5" y2="319.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L50" target="_top" title="m_mementos" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L50" xlink:show="new" xlink:title="m_mementos" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L50" target="_top" title="m_mementos" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L50" xlink:show="new" xlink:title="m_mementos" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="325.5"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="327.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L50" target="_top" title="m_mementos" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L50" xlink:show="new" xlink:title="m_mementos" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L50" target="_top" title="m_mementos" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L50" xlink:show="new" xlink:title="m_mementos" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="364" x="26" y="333.7104">m_mementos : std::unordered_map&lt;std::string,Memento&lt;T&gt;&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="395" y1="340.3047" y2="340.3047"/>
@@ -78,7 +78,7 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="259" x="26" y="354.5151">state(const std::string &amp; n) : Memento&lt;T&gt; &amp;</text>
<ellipse cx="17" cy="364.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="339" x="26" y="367.3198">set_state(const std::string &amp; s, Memento&lt;T&gt; &amp;&amp; m) : void</text>
<rect fill="#FEFECE" filter="url(#f4evlilcissuo)" height="48" id="C_0001708482137721157489" style="stroke: #A80036; stroke-width: 1.5;" width="160" x="239" y="159"/>
<rect fill="#FEFECE" filter="url(#f1i9lyvkxv8y6j)" height="48" id="C_0001708482137721157489" style="stroke: #A80036; stroke-width: 1.5;" width="160" x="239" y="159"/>
<ellipse cx="254" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M256.9688,180.6406 Q256.3906,180.9375 255.75,181.0781 Q255.1094,181.2344 254.4063,181.2344 Q251.9063,181.2344 250.5781,179.5938 Q249.2656,177.9375 249.2656,174.8125 Q249.2656,171.6875 250.5781,170.0313 Q251.9063,168.375 254.4063,168.375 Q255.1094,168.375 255.75,168.5313 Q256.4063,168.6875 256.9688,168.9844 L256.9688,171.7031 Q256.3438,171.125 255.75,170.8594 Q255.1563,170.5781 254.5313,170.5781 Q253.1875,170.5781 252.5,171.6563 Q251.8125,172.7188 251.8125,174.8125 Q251.8125,176.9063 252.5,177.9844 Q253.1875,179.0469 254.5313,179.0469 Q255.1563,179.0469 255.75,178.7813 Q256.3438,178.5 256.9688,177.9219 L256.9688,180.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="268" y="179.1543">Caretaker</text>
@@ -86,7 +86,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="62" x="339" y="168.1387">std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="240" x2="398" y1="191" y2="191"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="240" x2="398" y1="199" y2="199"/>
<rect fill="#FEFECE" filter="url(#f4evlilcissuo)" height="48" id="C_0001014247960805363560" style="stroke: #A80036; stroke-width: 1.5;" width="160" x="454" y="159"/>
<rect fill="#FEFECE" filter="url(#f1i9lyvkxv8y6j)" height="48" id="C_0001014247960805363560" style="stroke: #A80036; stroke-width: 1.5;" width="160" x="454" y="159"/>
<ellipse cx="469" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M471.9688,180.6406 Q471.3906,180.9375 470.75,181.0781 Q470.1094,181.2344 469.4063,181.2344 Q466.9063,181.2344 465.5781,179.5938 Q464.2656,177.9375 464.2656,174.8125 Q464.2656,171.6875 465.5781,170.0313 Q466.9063,168.375 469.4063,168.375 Q470.1094,168.375 470.75,168.5313 Q471.4063,168.6875 471.9688,168.9844 L471.9688,171.7031 Q471.3438,171.125 470.75,170.8594 Q470.1563,170.5781 469.5313,170.5781 Q468.1875,170.5781 467.5,171.6563 Q466.8125,172.7188 466.8125,174.8125 Q466.8125,176.9063 467.5,177.9844 Q468.1875,179.0469 469.5313,179.0469 Q470.1563,179.0469 470.75,178.7813 Q471.3438,178.5 471.9688,177.9219 L471.9688,180.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="483" y="179.1543">Originator</text>
@@ -94,25 +94,25 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="62" x="554" y="168.1387">std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="455" x2="613" y1="191" y2="191"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="455" x2="613" y1="199" y2="199"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L53" target="_top" title="StringMemento" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L53" xlink:show="new" xlink:title="StringMemento" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f4evlilcissuo)" height="73.6094" id="C_0000851750942915129289" style="stroke: #A80036; stroke-width: 1.5;" width="227" x="302.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L53" target="_top" title="StringMemento" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L53" xlink:show="new" xlink:title="StringMemento" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1i9lyvkxv8y6j)" height="73.6094" id="C_0000851750942915129289" style="stroke: #A80036; stroke-width: 1.5;" width="227" x="302.5" y="8"/>
<ellipse cx="364.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M367.2188,29.6406 Q366.6406,29.9375 366,30.0781 Q365.3594,30.2344 364.6563,30.2344 Q362.1563,30.2344 360.8281,28.5938 Q359.5156,26.9375 359.5156,23.8125 Q359.5156,20.6875 360.8281,19.0313 Q362.1563,17.375 364.6563,17.375 Q365.3594,17.375 366,17.5313 Q366.6563,17.6875 367.2188,17.9844 L367.2188,20.7031 Q366.5938,20.125 366,19.8594 Q365.4063,19.5781 364.7813,19.5781 Q363.4375,19.5781 362.75,20.6563 Q362.0625,21.7188 362.0625,23.8125 Q362.0625,25.9063 362.75,26.9844 Q363.4375,28.0469 364.7813,28.0469 Q365.4063,28.0469 366,27.7813 Q366.5938,27.5 367.2188,26.9219 L367.2188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="95" x="384.75" y="28.1543">StringMemento</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="303.5" x2="528.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L54" target="_top" title="caretaker" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L54" xlink:show="new" xlink:title="caretaker" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L54" target="_top" title="caretaker" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L54" xlink:show="new" xlink:title="caretaker" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="308.5" y="46"/>
<ellipse cx="313.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L54" target="_top" title="caretaker" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L54" xlink:show="new" xlink:title="caretaker" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L54" target="_top" title="caretaker" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L54" xlink:show="new" xlink:title="caretaker" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="322.5" y="54.2104">caretaker : Caretaker&lt;std::string&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L55" target="_top" title="originator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L55" xlink:show="new" xlink:title="originator" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L55" target="_top" title="originator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L55" xlink:show="new" xlink:title="originator" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="308.5" y="58.8047"/>
<ellipse cx="313.5" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L55" target="_top" title="originator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00026/t00026.cc#L55" xlink:show="new" xlink:title="originator" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L55" target="_top" title="originator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00026/t00026.cc#L55" xlink:show="new" xlink:title="originator" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="201" x="322.5" y="67.0151">originator : Originator&lt;std::string&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="303.5" x2="528.5" y1="73.6094" y2="73.6094"/>

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 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="390px" preserveAspectRatio="none" style="width:1202px;height:390px;" version="1.1" viewBox="0 0 1202 390" width="1202px" 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:1274px;height:390px;" version="1.1" viewBox="0 0 1274 390" width="1274px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1qzev5d3jsn67" width="300%" x="-1" y="-1">
<filter height="300%" id="f1gqbv42d9pthp" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,97 +9,97 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L8" target="_top" title="Shape" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L8" xlink:show="new" xlink:title="Shape" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="73.6094" id="C_0001593092483959332221" style="stroke: #A80036; stroke-width: 1.5;" width="170" x="310.5" y="184"/>
<ellipse cx="371.25" cy="200" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M371.3594,195.3438 L370.2031,200.4219 L372.5313,200.4219 L371.3594,195.3438 Z M369.875,193.1094 L372.8594,193.1094 L376.2188,205.5 L373.7656,205.5 L373,202.4375 L369.7188,202.4375 L368.9688,205.5 L366.5313,205.5 L369.875,193.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="40" x="391.75" y="204.1543">Shape</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="311.5" x2="479.5" y1="216" y2="216"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="311.5" x2="479.5" y1="224" y2="224"/>
<ellipse cx="321.5" cy="235" 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="108" x="330.5" y="238.2104">display() = 0 : void</text>
<ellipse cx="321.5" 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="144" x="330.5" y="251.0151">~Shape() = default : void</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L8" target="_top" title="Shape" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L8" xlink:show="new" xlink:title="Shape" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="73.6094" id="C_0001593092483959332221" style="stroke: #A80036; stroke-width: 1.5;" width="170" x="402.5" y="184"/>
<ellipse cx="463.25" cy="200" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M463.3594,195.3438 L462.2031,200.4219 L464.5313,200.4219 L463.3594,195.3438 Z M461.875,193.1094 L464.8594,193.1094 L468.2188,205.5 L465.7656,205.5 L465,202.4375 L461.7188,202.4375 L460.9688,205.5 L458.5313,205.5 L461.875,193.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="40" x="483.75" y="204.1543">Shape</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="403.5" x2="571.5" y1="216" y2="216"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="403.5" x2="571.5" y1="224" y2="224"/>
<ellipse cx="413.5" cy="235" 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="108" x="422.5" y="238.2104">display() = 0 : void</text>
<ellipse cx="413.5" 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="144" x="422.5" y="251.0151">~Shape() = default : void</text>
</a>
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="48" id="C_0001568932879061562228" style="stroke: #A80036; stroke-width: 1.5;" width="57" x="700" y="33.5"/>
<ellipse cx="715" cy="49.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M717.9688,55.1406 Q717.3906,55.4375 716.75,55.5781 Q716.1094,55.7344 715.4063,55.7344 Q712.9063,55.7344 711.5781,54.0938 Q710.2656,52.4375 710.2656,49.3125 Q710.2656,46.1875 711.5781,44.5313 Q712.9063,42.875 715.4063,42.875 Q716.1094,42.875 716.75,43.0313 Q717.4063,43.1875 717.9688,43.4844 L717.9688,46.2031 Q717.3438,45.625 716.75,45.3594 Q716.1563,45.0781 715.5313,45.0781 Q714.1875,45.0781 713.5,46.1563 Q712.8125,47.2188 712.8125,49.3125 Q712.8125,51.4063 713.5,52.4844 Q714.1875,53.5469 715.5313,53.5469 Q716.1563,53.5469 716.75,53.2813 Q717.3438,53 717.9688,52.4219 L717.9688,55.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="25" x="729" y="53.6543">Line</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="701" x2="756" y1="65.5" y2="65.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="701" x2="756" y1="73.5" y2="73.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L15" target="_top" title="Line" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L15" xlink:show="new" xlink:title="Line" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="60.8047" id="C_0000142374082478337852" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="150" y="319"/>
<ellipse cx="169.05" cy="335" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M172.0188,340.6406 Q171.4406,340.9375 170.8,341.0781 Q170.1594,341.2344 169.4563,341.2344 Q166.9563,341.2344 165.6281,339.5938 Q164.3156,337.9375 164.3156,334.8125 Q164.3156,331.6875 165.6281,330.0313 Q166.9563,328.375 169.4563,328.375 Q170.1594,328.375 170.8,328.5313 Q171.4563,328.6875 172.0188,328.9844 L172.0188,331.7031 Q171.3938,331.125 170.8,330.8594 Q170.2063,330.5781 169.5813,330.5781 Q168.2375,330.5781 167.55,331.6563 Q166.8625,332.7188 166.8625,334.8125 Q166.8625,336.9063 167.55,337.9844 Q168.2375,339.0469 169.5813,339.0469 Q170.2063,339.0469 170.8,338.7813 Q171.3938,338.5 172.0188,337.9219 L172.0188,340.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="25" x="183.95" y="339.1543">Line</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="41" x="221" y="316"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="39" x="222" y="328.1387">T&lt;&gt;...</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="151" x2="258" y1="351" y2="351"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="151" x2="258" y1="359" y2="359"/>
<ellipse cx="161" cy="370" 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="83" x="170" y="373.2104">display() : void</text>
</a>
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="48" id="C_0001833467466291294724" style="stroke: #A80036; stroke-width: 1.5;" width="58" x="864.5" y="33.5"/>
<ellipse cx="879.5" cy="49.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M882.4688,55.1406 Q881.8906,55.4375 881.25,55.5781 Q880.6094,55.7344 879.9063,55.7344 Q877.4063,55.7344 876.0781,54.0938 Q874.7656,52.4375 874.7656,49.3125 Q874.7656,46.1875 876.0781,44.5313 Q877.4063,42.875 879.9063,42.875 Q880.6094,42.875 881.25,43.0313 Q881.9063,43.1875 882.4688,43.4844 L882.4688,46.2031 Q881.8438,45.625 881.25,45.3594 Q880.6563,45.0781 880.0313,45.0781 Q878.6875,45.0781 878,46.1563 Q877.3125,47.2188 877.3125,49.3125 Q877.3125,51.4063 878,52.4844 Q878.6875,53.5469 880.0313,53.5469 Q880.6563,53.5469 881.25,53.2813 Q881.8438,53 882.4688,52.4219 L882.4688,55.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="26" x="893.5" y="53.6543">Text</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="865.5" x2="921.5" y1="65.5" y2="65.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="865.5" x2="921.5" y1="73.5" y2="73.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L25" target="_top" title="Text" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L25" xlink:show="new" xlink:title="Text" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="60.8047" id="C_0001114634647721878603" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="532" y="319"/>
<ellipse cx="550.6" cy="335" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M553.5688,340.6406 Q552.9906,340.9375 552.35,341.0781 Q551.7094,341.2344 551.0063,341.2344 Q548.5063,341.2344 547.1781,339.5938 Q545.8656,337.9375 545.8656,334.8125 Q545.8656,331.6875 547.1781,330.0313 Q548.5063,328.375 551.0063,328.375 Q551.7094,328.375 552.35,328.5313 Q553.0063,328.6875 553.5688,328.9844 L553.5688,331.7031 Q552.9438,331.125 552.35,330.8594 Q551.7563,330.5781 551.1313,330.5781 Q549.7875,330.5781 549.1,331.6563 Q548.4125,332.7188 548.4125,334.8125 Q548.4125,336.9063 549.1,337.9844 Q549.7875,339.0469 551.1313,339.0469 Q551.7563,339.0469 552.35,338.7813 Q552.9438,338.5 553.5688,337.9219 L553.5688,340.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="26" x="565.4" y="339.1543">Text</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="41" x="603" y="316"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="39" x="604" y="328.1387">T&lt;&gt;...</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="533" x2="640" y1="351" y2="351"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="533" x2="640" y1="359" y2="359"/>
<ellipse cx="543" cy="370" 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="83" x="552" y="373.2104">display() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L34" target="_top" title="ShapeDecorator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L34" xlink:show="new" xlink:title="ShapeDecorator" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="60.8047" id="C_0002049188825706164566" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="994" y="27"/>
<ellipse cx="1009" cy="43" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1009.1094,38.3438 L1007.9531,43.4219 L1010.2813,43.4219 L1009.1094,38.3438 Z M1007.625,36.1094 L1010.6094,36.1094 L1013.9688,48.5 L1011.5156,48.5 L1010.75,45.4375 L1007.4688,45.4375 L1006.7188,48.5 L1004.2813,48.5 L1007.625,36.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="103" x="1023" y="47.1543">ShapeDecorator</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="995" x2="1128" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="995" x2="1128" y1="67" y2="67"/>
<ellipse cx="1005" cy="78" 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="108" x="1014" y="81.2104">display() = 0 : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L38" target="_top" title="Color" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L38" xlink:show="new" xlink:title="Color" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="60.8047" id="C_0001473536569433029444" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="935" y="190.5"/>
<ellipse cx="965.3" cy="206.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M968.2688,212.1406 Q967.6906,212.4375 967.05,212.5781 Q966.4094,212.7344 965.7063,212.7344 Q963.2063,212.7344 961.8781,211.0938 Q960.5656,209.4375 960.5656,206.3125 Q960.5656,203.1875 961.8781,201.5313 Q963.2063,199.875 965.7063,199.875 Q966.4094,199.875 967.05,200.0313 Q967.7063,200.1875 968.2688,200.4844 L968.2688,203.2031 Q967.6438,202.625 967.05,202.3594 Q966.4563,202.0781 965.8313,202.0781 Q964.4875,202.0781 963.8,203.1563 Q963.1125,204.2188 963.1125,206.3125 Q963.1125,208.4063 963.8,209.4844 Q964.4875,210.5469 965.8313,210.5469 Q966.4563,210.5469 967.05,210.2813 Q967.6438,210 968.2688,209.4219 L968.2688,212.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="982.7" y="210.6543">Color</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="1038" y="187.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="1039" y="199.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="936" x2="1043" y1="222.5" y2="222.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="936" x2="1043" y1="230.5" y2="230.5"/>
<ellipse cx="946" cy="241.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="83" x="955" y="244.7104">display() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L43" target="_top" title="Weight" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L43" xlink:show="new" xlink:title="Weight" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="60.8047" id="C_0002049455532387561338" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="1079" y="190.5"/>
<ellipse cx="1104.35" cy="206.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1107.3188,212.1406 Q1106.7406,212.4375 1106.1,212.5781 Q1105.4594,212.7344 1104.7563,212.7344 Q1102.2563,212.7344 1100.9281,211.0938 Q1099.6156,209.4375 1099.6156,206.3125 Q1099.6156,203.1875 1100.9281,201.5313 Q1102.2563,199.875 1104.7563,199.875 Q1105.4594,199.875 1106.1,200.0313 Q1106.7563,200.1875 1107.3188,200.4844 L1107.3188,203.2031 Q1106.6938,202.625 1106.1,202.3594 Q1105.5063,202.0781 1104.8813,202.0781 Q1103.5375,202.0781 1102.85,203.1563 Q1102.1625,204.2188 1102.1625,206.3125 Q1102.1625,208.4063 1102.85,209.4844 Q1103.5375,210.5469 1104.8813,210.5469 Q1105.5063,210.5469 1106.1,210.2813 Q1106.6938,210 1107.3188,209.4219 L1107.3188,212.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="43" x="1120.65" y="210.6543">Weight</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="1182" y="187.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="1183" y="199.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1080" x2="1187" y1="222.5" y2="222.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1080" x2="1187" y1="230.5" y2="230.5"/>
<ellipse cx="1090" cy="241.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="83" x="1099" y="244.7104">display() : void</text>
</a>
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="48" id="C_0002082936326417164202" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="134" y="197"/>
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="48" id="C_0001568932879061562228" style="stroke: #A80036; stroke-width: 1.5;" width="57" x="134" y="197"/>
<ellipse cx="149" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M151.9688,218.6406 Q151.3906,218.9375 150.75,219.0781 Q150.1094,219.2344 149.4063,219.2344 Q146.9063,219.2344 145.5781,217.5938 Q144.2656,215.9375 144.2656,212.8125 Q144.2656,209.6875 145.5781,208.0313 Q146.9063,206.375 149.4063,206.375 Q150.1094,206.375 150.75,206.5313 Q151.4063,206.6875 151.9688,206.9844 L151.9688,209.7031 Q151.3438,209.125 150.75,208.8594 Q150.1563,208.5781 149.5313,208.5781 Q148.1875,208.5781 147.5,209.6563 Q146.8125,210.7188 146.8125,212.8125 Q146.8125,214.9063 147.5,215.9844 Q148.1875,217.0469 149.5313,217.0469 Q150.1563,217.0469 150.75,216.7813 Q151.3438,216.5 151.9688,215.9219 L151.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="25" x="163" y="217.1543">Line</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="82" x="196" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="80" x="197" y="206.1387">Color,Weight</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="135" x2="274" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="135" x2="274" y1="237" y2="237"/>
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="48" id="C_0000675132943535054947" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="6" y="197"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="135" x2="190" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="135" x2="190" y1="237" y2="237"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L15" target="_top" title="Line" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L15" xlink:show="new" xlink:title="Line" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="60.8047" id="C_0000142374082478337852" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="142" y="319"/>
<ellipse cx="161.05" cy="335" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M164.0188,340.6406 Q163.4406,340.9375 162.8,341.0781 Q162.1594,341.2344 161.4563,341.2344 Q158.9563,341.2344 157.6281,339.5938 Q156.3156,337.9375 156.3156,334.8125 Q156.3156,331.6875 157.6281,330.0313 Q158.9563,328.375 161.4563,328.375 Q162.1594,328.375 162.8,328.5313 Q163.4563,328.6875 164.0188,328.9844 L164.0188,331.7031 Q163.3938,331.125 162.8,330.8594 Q162.2063,330.5781 161.5813,330.5781 Q160.2375,330.5781 159.55,331.6563 Q158.8625,332.7188 158.8625,334.8125 Q158.8625,336.9063 159.55,337.9844 Q160.2375,339.0469 161.5813,339.0469 Q162.2063,339.0469 162.8,338.7813 Q163.3938,338.5 164.0188,337.9219 L164.0188,340.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="25" x="175.95" y="339.1543">Line</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="41" x="213" y="316"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="39" x="214" y="328.1387">T&lt;&gt;...</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="250" y1="351" y2="351"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="143" x2="250" y1="359" y2="359"/>
<ellipse cx="153" cy="370" 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="83" x="162" y="373.2104">display() : void</text>
</a>
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="48" id="C_0001833467466291294724" style="stroke: #A80036; stroke-width: 1.5;" width="58" x="913.5" y="197"/>
<ellipse cx="928.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M931.4688,218.6406 Q930.8906,218.9375 930.25,219.0781 Q929.6094,219.2344 928.9063,219.2344 Q926.4063,219.2344 925.0781,217.5938 Q923.7656,215.9375 923.7656,212.8125 Q923.7656,209.6875 925.0781,208.0313 Q926.4063,206.375 928.9063,206.375 Q929.6094,206.375 930.25,206.5313 Q930.9063,206.6875 931.4688,206.9844 L931.4688,209.7031 Q930.8438,209.125 930.25,208.8594 Q929.6563,208.5781 929.0313,208.5781 Q927.6875,208.5781 927,209.6563 Q926.3125,210.7188 926.3125,212.8125 Q926.3125,214.9063 927,215.9844 Q927.6875,217.0469 929.0313,217.0469 Q929.6563,217.0469 930.25,216.7813 Q930.8438,216.5 931.4688,215.9219 L931.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="26" x="942.5" y="217.1543">Text</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="914.5" x2="970.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="914.5" x2="970.5" y1="237" y2="237"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L25" target="_top" title="Text" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L25" xlink:show="new" xlink:title="Text" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="60.8047" id="C_0001114634647721878603" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="696" y="319"/>
<ellipse cx="714.6" cy="335" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M717.5688,340.6406 Q716.9906,340.9375 716.35,341.0781 Q715.7094,341.2344 715.0063,341.2344 Q712.5063,341.2344 711.1781,339.5938 Q709.8656,337.9375 709.8656,334.8125 Q709.8656,331.6875 711.1781,330.0313 Q712.5063,328.375 715.0063,328.375 Q715.7094,328.375 716.35,328.5313 Q717.0063,328.6875 717.5688,328.9844 L717.5688,331.7031 Q716.9438,331.125 716.35,330.8594 Q715.7563,330.5781 715.1313,330.5781 Q713.7875,330.5781 713.1,331.6563 Q712.4125,332.7188 712.4125,334.8125 Q712.4125,336.9063 713.1,337.9844 Q713.7875,339.0469 715.1313,339.0469 Q715.7563,339.0469 716.35,338.7813 Q716.9438,338.5 717.5688,337.9219 L717.5688,340.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="26" x="729.4" y="339.1543">Text</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="41" x="767" y="316"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="39" x="768" y="328.1387">T&lt;&gt;...</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="697" x2="804" y1="351" y2="351"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="697" x2="804" y1="359" y2="359"/>
<ellipse cx="707" cy="370" 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="83" x="716" y="373.2104">display() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L34" target="_top" title="ShapeDecorator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L34" xlink:show="new" xlink:title="ShapeDecorator" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="60.8047" id="C_0002049188825706164566" style="stroke: #A80036; stroke-width: 1.5;" width="135" x="1066" y="27"/>
<ellipse cx="1081" cy="43" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1081.1094,38.3438 L1079.9531,43.4219 L1082.2813,43.4219 L1081.1094,38.3438 Z M1079.625,36.1094 L1082.6094,36.1094 L1085.9688,48.5 L1083.5156,48.5 L1082.75,45.4375 L1079.4688,45.4375 L1078.7188,48.5 L1076.2813,48.5 L1079.625,36.1094 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="103" x="1095" y="47.1543">ShapeDecorator</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1067" x2="1200" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1067" x2="1200" y1="67" y2="67"/>
<ellipse cx="1077" cy="78" 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="108" x="1086" y="81.2104">display() = 0 : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L38" target="_top" title="Color" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L38" xlink:show="new" xlink:title="Color" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="60.8047" id="C_0001473536569433029444" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="1007" y="190.5"/>
<ellipse cx="1037.3" cy="206.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1040.2688,212.1406 Q1039.6906,212.4375 1039.05,212.5781 Q1038.4094,212.7344 1037.7063,212.7344 Q1035.2063,212.7344 1033.8781,211.0938 Q1032.5656,209.4375 1032.5656,206.3125 Q1032.5656,203.1875 1033.8781,201.5313 Q1035.2063,199.875 1037.7063,199.875 Q1038.4094,199.875 1039.05,200.0313 Q1039.7063,200.1875 1040.2688,200.4844 L1040.2688,203.2031 Q1039.6438,202.625 1039.05,202.3594 Q1038.4563,202.0781 1037.8313,202.0781 Q1036.4875,202.0781 1035.8,203.1563 Q1035.1125,204.2188 1035.1125,206.3125 Q1035.1125,208.4063 1035.8,209.4844 Q1036.4875,210.5469 1037.8313,210.5469 Q1038.4563,210.5469 1039.05,210.2813 Q1039.6438,210 1040.2688,209.4219 L1040.2688,212.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="1054.7" y="210.6543">Color</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="1110" y="187.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="1111" y="199.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1008" x2="1115" y1="222.5" y2="222.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1008" x2="1115" y1="230.5" y2="230.5"/>
<ellipse cx="1018" cy="241.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="83" x="1027" y="244.7104">display() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L43" target="_top" title="Weight" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L43" xlink:show="new" xlink:title="Weight" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="60.8047" id="C_0002049455532387561338" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="1151" y="190.5"/>
<ellipse cx="1176.35" cy="206.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1179.3188,212.1406 Q1178.7406,212.4375 1178.1,212.5781 Q1177.4594,212.7344 1176.7563,212.7344 Q1174.2563,212.7344 1172.9281,211.0938 Q1171.6156,209.4375 1171.6156,206.3125 Q1171.6156,203.1875 1172.9281,201.5313 Q1174.2563,199.875 1176.7563,199.875 Q1177.4594,199.875 1178.1,200.0313 Q1178.7563,200.1875 1179.3188,200.4844 L1179.3188,203.2031 Q1178.6938,202.625 1178.1,202.3594 Q1177.5063,202.0781 1176.8813,202.0781 Q1175.5375,202.0781 1174.85,203.1563 Q1174.1625,204.2188 1174.1625,206.3125 Q1174.1625,208.4063 1174.85,209.4844 Q1175.5375,210.5469 1176.8813,210.5469 Q1177.5063,210.5469 1178.1,210.2813 Q1178.6938,210 1179.3188,209.4219 L1179.3188,212.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="43" x="1192.65" y="210.6543">Weight</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="1254" y="187.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="1255" y="199.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1152" x2="1259" y1="222.5" y2="222.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1152" x2="1259" y1="230.5" y2="230.5"/>
<ellipse cx="1162" cy="241.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="83" x="1171" y="244.7104">display() : void</text>
</a>
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="48" id="C_0002082936326417164202" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="226" y="197"/>
<ellipse cx="241" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M243.9688,218.6406 Q243.3906,218.9375 242.75,219.0781 Q242.1094,219.2344 241.4063,219.2344 Q238.9063,219.2344 237.5781,217.5938 Q236.2656,215.9375 236.2656,212.8125 Q236.2656,209.6875 237.5781,208.0313 Q238.9063,206.375 241.4063,206.375 Q242.1094,206.375 242.75,206.5313 Q243.4063,206.6875 243.9688,206.9844 L243.9688,209.7031 Q243.3438,209.125 242.75,208.8594 Q242.1563,208.5781 241.5313,208.5781 Q240.1875,208.5781 239.5,209.6563 Q238.8125,210.7188 238.8125,212.8125 Q238.8125,214.9063 239.5,215.9844 Q240.1875,217.0469 241.5313,217.0469 Q242.1563,217.0469 242.75,216.7813 Q243.3438,216.5 243.9688,215.9219 L243.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="25" x="255" y="217.1543">Line</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="82" x="288" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="80" x="289" y="206.1387">Color,Weight</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="227" x2="366" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="227" x2="366" y1="237" y2="237"/>
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="48" id="C_0000675132943535054947" style="stroke: #A80036; stroke-width: 1.5;" width="93" 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="25" x="35" y="217.1543">Line</text>
@@ -107,89 +107,93 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="32" x="69" y="206.1387">Color</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="98" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="98" y1="237" y2="237"/>
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="48" id="C_0001678874302644303776" style="stroke: #A80036; stroke-width: 1.5;" width="142" x="515.5" y="197"/>
<ellipse cx="530.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M533.4688,218.6406 Q532.8906,218.9375 532.25,219.0781 Q531.6094,219.2344 530.9063,219.2344 Q528.4063,219.2344 527.0781,217.5938 Q525.7656,215.9375 525.7656,212.8125 Q525.7656,209.6875 527.0781,208.0313 Q528.4063,206.375 530.9063,206.375 Q531.6094,206.375 532.25,206.5313 Q532.9063,206.6875 533.4688,206.9844 L533.4688,209.7031 Q532.8438,209.125 532.25,208.8594 Q531.6563,208.5781 531.0313,208.5781 Q529.6875,208.5781 529,209.6563 Q528.3125,210.7188 528.3125,212.8125 Q528.3125,214.9063 529,215.9844 Q529.6875,217.0469 531.0313,217.0469 Q531.6563,217.0469 532.25,216.7813 Q532.8438,216.5 533.4688,215.9219 L533.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="26" x="544.5" y="217.1543">Text</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="82" x="578.5" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="80" x="579.5" y="206.1387">Color,Weight</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="516.5" x2="656.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="516.5" x2="656.5" y1="237" y2="237"/>
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="48" id="C_0001887786688778664182" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="692.5" y="197"/>
<ellipse cx="707.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M710.4688,218.6406 Q709.8906,218.9375 709.25,219.0781 Q708.6094,219.2344 707.9063,219.2344 Q705.4063,219.2344 704.0781,217.5938 Q702.7656,215.9375 702.7656,212.8125 Q702.7656,209.6875 704.0781,208.0313 Q705.4063,206.375 707.9063,206.375 Q708.6094,206.375 709.25,206.5313 Q709.9063,206.6875 710.4688,206.9844 L710.4688,209.7031 Q709.8438,209.125 709.25,208.8594 Q708.6563,208.5781 708.0313,208.5781 Q706.6875,208.5781 706,209.6563 Q705.3125,210.7188 705.3125,212.8125 Q705.3125,214.9063 706,215.9844 Q706.6875,217.0469 708.0313,217.0469 Q708.6563,217.0469 709.25,216.7813 Q709.8438,216.5 710.4688,215.9219 L710.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="26" x="721.5" y="217.1543">Text</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="34" x="755.5" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="32" x="756.5" y="206.1387">Color</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="693.5" x2="785.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="693.5" x2="785.5" y1="237" y2="237"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L48" target="_top" title="Window" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L48" xlink:show="new" xlink:title="Window" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qzev5d3jsn67)" height="99.2188" id="C_0001373544984027721472" style="stroke: #A80036; stroke-width: 1.5;" width="188" x="332.5" y="8"/>
<ellipse cx="398.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M401.7188,29.6406 Q401.1406,29.9375 400.5,30.0781 Q399.8594,30.2344 399.1563,30.2344 Q396.6563,30.2344 395.3281,28.5938 Q394.0156,26.9375 394.0156,23.8125 Q394.0156,20.6875 395.3281,19.0313 Q396.6563,17.375 399.1563,17.375 Q399.8594,17.375 400.5,17.5313 Q401.1563,17.6875 401.7188,17.9844 L401.7188,20.7031 Q401.0938,20.125 400.5,19.8594 Q399.9063,19.5781 399.2813,19.5781 Q397.9375,19.5781 397.25,20.6563 Q396.5625,21.7188 396.5625,23.8125 Q396.5625,25.9063 397.25,26.9844 Q397.9375,28.0469 399.2813,28.0469 Q399.9063,28.0469 400.5,27.7813 Q401.0938,27.5 401.7188,26.9219 L401.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="47" x="419.25" y="28.1543">Window</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="333.5" x2="519.5" y1="40" y2="40"/>
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="48" id="C_0001678874302644303776" style="stroke: #A80036; stroke-width: 1.5;" width="142" x="607.5" y="197"/>
<ellipse cx="622.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M625.4688,218.6406 Q624.8906,218.9375 624.25,219.0781 Q623.6094,219.2344 622.9063,219.2344 Q620.4063,219.2344 619.0781,217.5938 Q617.7656,215.9375 617.7656,212.8125 Q617.7656,209.6875 619.0781,208.0313 Q620.4063,206.375 622.9063,206.375 Q623.6094,206.375 624.25,206.5313 Q624.9063,206.6875 625.4688,206.9844 L625.4688,209.7031 Q624.8438,209.125 624.25,208.8594 Q623.6563,208.5781 623.0313,208.5781 Q621.6875,208.5781 621,209.6563 Q620.3125,210.7188 620.3125,212.8125 Q620.3125,214.9063 621,215.9844 Q621.6875,217.0469 623.0313,217.0469 Q623.6563,217.0469 624.25,216.7813 Q624.8438,216.5 625.4688,215.9219 L625.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="26" x="636.5" y="217.1543">Text</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="82" x="670.5" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="80" x="671.5" y="206.1387">Color,Weight</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="608.5" x2="748.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="608.5" x2="748.5" y1="237" y2="237"/>
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="48" id="C_0001887786688778664182" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="784.5" y="197"/>
<ellipse cx="799.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M802.4688,218.6406 Q801.8906,218.9375 801.25,219.0781 Q800.6094,219.2344 799.9063,219.2344 Q797.4063,219.2344 796.0781,217.5938 Q794.7656,215.9375 794.7656,212.8125 Q794.7656,209.6875 796.0781,208.0313 Q797.4063,206.375 799.9063,206.375 Q800.6094,206.375 801.25,206.5313 Q801.9063,206.6875 802.4688,206.9844 L802.4688,209.7031 Q801.8438,209.125 801.25,208.8594 Q800.6563,208.5781 800.0313,208.5781 Q798.6875,208.5781 798,209.6563 Q797.3125,210.7188 797.3125,212.8125 Q797.3125,214.9063 798,215.9844 Q798.6875,217.0469 800.0313,217.0469 Q800.6563,217.0469 801.25,216.7813 Q801.8438,216.5 802.4688,215.9219 L802.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="26" x="813.5" y="217.1543">Text</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="34" x="847.5" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="32" x="848.5" y="206.1387">Color</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="785.5" x2="877.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="785.5" x2="877.5" y1="237" y2="237"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L48" target="_top" title="Window" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L48" xlink:show="new" xlink:title="Window" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gqbv42d9pthp)" height="99.2188" id="C_0001373544984027721472" style="stroke: #A80036; stroke-width: 1.5;" width="188" x="428.5" y="8"/>
<ellipse cx="494.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M497.7188,29.6406 Q497.1406,29.9375 496.5,30.0781 Q495.8594,30.2344 495.1563,30.2344 Q492.6563,30.2344 491.3281,28.5938 Q490.0156,26.9375 490.0156,23.8125 Q490.0156,20.6875 491.3281,19.0313 Q492.6563,17.375 495.1563,17.375 Q495.8594,17.375 496.5,17.5313 Q497.1563,17.6875 497.7188,17.9844 L497.7188,20.7031 Q497.0938,20.125 496.5,19.8594 Q495.9063,19.5781 495.2813,19.5781 Q493.9375,19.5781 493.25,20.6563 Q492.5625,21.7188 492.5625,23.8125 Q492.5625,25.9063 493.25,26.9844 Q493.9375,28.0469 495.2813,28.0469 Q495.9063,28.0469 496.5,27.7813 Q497.0938,27.5 497.7188,26.9219 L497.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="47" x="515.25" y="28.1543">Window</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="429.5" x2="615.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L49" target="_top" title="border" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L49" xlink:show="new" xlink:title="border" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="338.5" y="46"/>
<ellipse cx="343.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L49" target="_top" title="border" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L49" xlink:show="new" xlink:title="border" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="434.5" y="46"/>
<ellipse cx="439.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L49" target="_top" title="border" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L49" xlink:show="new" xlink:title="border" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="162" x="352.5" y="54.2104">border : Line&lt;Color,Weight&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L49" target="_top" title="border" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L49" xlink:show="new" xlink:title="border" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="162" x="448.5" y="54.2104">border : Line&lt;Color,Weight&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L50" target="_top" title="divider" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L50" xlink:show="new" xlink:title="divider" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="338.5" y="58.8047"/>
<ellipse cx="343.5" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L50" target="_top" title="divider" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L50" xlink:show="new" xlink:title="divider" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="434.5" y="58.8047"/>
<ellipse cx="439.5" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L50" target="_top" title="divider" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L50" xlink:show="new" xlink:title="divider" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="352.5" y="67.0151">divider : Line&lt;Color&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L50" target="_top" title="divider" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L50" xlink:show="new" xlink:title="divider" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="448.5" y="67.0151">divider : Line&lt;Color&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L51" target="_top" title="title" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L51" xlink:show="new" xlink:title="title" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="338.5" y="71.6094"/>
<ellipse cx="343.5" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L51" target="_top" title="title" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L51" xlink:show="new" xlink:title="title" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="434.5" y="71.6094"/>
<ellipse cx="439.5" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L51" target="_top" title="title" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L51" xlink:show="new" xlink:title="title" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="352.5" y="79.8198">title : Text&lt;Color,Weight&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L51" target="_top" title="title" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L51" xlink:show="new" xlink:title="title" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="448.5" y="79.8198">title : Text&lt;Color,Weight&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L52" target="_top" title="description" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L52" xlink:show="new" xlink:title="description" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="338.5" y="84.4141"/>
<ellipse cx="343.5" cy="89.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L52" target="_top" title="description" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L52" xlink:show="new" xlink:title="description" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="434.5" y="84.4141"/>
<ellipse cx="439.5" cy="89.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L52" target="_top" title="description" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00027/t00027.cc#L52" xlink:show="new" xlink:title="description" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="352.5" y="92.6245">description : Text&lt;Color&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L52" target="_top" title="description" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00027/t00027.cc#L52" xlink:show="new" xlink:title="description" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="448.5" y="92.6245">description : Text&lt;Color&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="333.5" x2="519.5" y1="99.2188" y2="99.2188"/>
<path d="M324.08,269.3 C298.92,285.96 271.38,304.21 249.07,318.98 " fill="none" id="C_0001593092483959332221&lt;-C_0000142374082478337852" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="320.48,263.29,341.02,258.08,328.21,274.96,320.48,263.29" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M466.92,269.3 C492.08,285.96 519.62,304.21 541.93,318.98 " fill="none" id="C_0001593092483959332221&lt;-C_0001114634647721878603" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="462.79,274.96,449.98,258.08,470.52,263.29,462.79,274.96" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1040.04,106.64 C1027.93,133.8 1013.18,166.89 1002.74,190.29 " fill="none" id="C_0002049188825706164566&lt;-C_0001473536569433029444" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="1033.76,103.54,1048.29,88.12,1046.54,109.24,1033.76,103.54" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1082.96,106.64 C1095.07,133.8 1109.82,166.89 1120.26,190.29 " fill="none" id="C_0002049188825706164566&lt;-C_0002049455532387561338" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="1076.46,109.24,1074.71,88.12,1089.24,103.54,1076.46,109.24" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M204.5,245.2 C204.5,260.15 204.5,280.17 204.5,298.6 " fill="none" id="C_0002082936326417164202-&gt;C_0000142374082478337852" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="211.5,298.75,204.5,318.75,197.5,298.75,211.5,298.75" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M80.38,245.2 C100.84,262.23 129.2,285.83 153.65,306.18 " fill="none" id="C_0000675132943535054947-&gt;C_0000142374082478337852" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="158.13,300.8,169.03,318.98,149.18,311.57,158.13,300.8" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M586.5,245.2 C586.5,260.15 586.5,280.17 586.5,298.6 " fill="none" id="C_0001678874302644303776-&gt;C_0001114634647721878603" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="593.5,298.75,586.5,318.75,579.5,298.75,593.5,298.75" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M711.44,245.2 C690.84,262.23 662.3,285.83 637.69,306.18 " fill="none" id="C_0001887786688778664182-&gt;C_0001114634647721878603" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="642.08,311.63,622.21,318.98,633.16,300.84,642.08,311.63" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M348.87,114.98 C310.22,143.09 265.62,175.54 236.34,196.84 " fill="none" id="C_0001373544984027721472&lt;-C_0002082936326417164202" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="359.59,107.17,352.3851,107.4687,349.8897,114.2343,357.0946,113.9356,359.59,107.17" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="321.5" cy="146.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="42" x="328.5" y="150.0669">border</text>
<path d="M319.96,97.75 C259.47,120.99 182.82,152.07 116.5,184 C108.34,187.93 99.79,192.44 91.69,196.92 " fill="none" id="C_0001373544984027721472&lt;-C_0000675132943535054947" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="332.23,93.06,325.1971,91.4666,321.0214,97.3456,328.0542,98.939,332.23,93.06" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="223.5" cy="146.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="42" x="230.5" y="150.0669">divider</text>
<path d="M484.1,116.64 C511.59,144.39 542.93,176.02 563.62,196.9 " fill="none" id="C_0001373544984027721472&lt;-C_0001678874302644303776" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="474.94,107.39,476.3212,114.4676,483.3856,115.9148,482.0044,108.8372,474.94,107.39" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="527.5" cy="146.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="24" x="534.5" y="150.0669">title</text>
<path d="M532.2,110.9 C576.37,133.08 628.11,159.43 674.5,184 C682.25,188.11 690.47,192.57 698.36,196.91 " fill="none" id="C_0001373544984027721472&lt;-C_0001887786688778664182" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="520.55,105.06,524.1185,111.3263,531.2752,110.4424,527.7067,104.1761,520.55,105.06" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="429.5" x2="615.5" y1="99.2188" y2="99.2188"/>
<path d="M168.74,245.2 C172.8,260.31 178.25,280.6 183.25,299.2 " fill="none" id="C_0001568932879061562228-&gt;C_0000142374082478337852" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="190.07,297.61,188.5,318.75,176.55,301.25,190.07,297.61" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M386.15,266.06 C340.77,285.79 289.05,308.27 251.09,324.77 " fill="none" id="C_0001593092483959332221&lt;-C_0000142374082478337852" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="383.37,259.63,404.5,258.08,388.95,272.47,383.37,259.63" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M913.49,244.91 C907.61,249.36 901.41,253.9 895.5,258 C870.67,275.2 842.66,293.03 817.92,308.27 " fill="none" id="C_0001833467466291294724-&gt;C_0001114634647721878603" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="821.3,314.41,800.59,318.86,814,302.46,821.3,314.41" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M580.7,266.83 C619.25,285.37 662.62,306.23 695.87,322.22 " fill="none" id="C_0001593092483959332221&lt;-C_0001114634647721878603" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="577.5,273.06,562.51,258.08,583.57,260.44,577.5,273.06" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1112.04,106.64 C1099.93,133.8 1085.18,166.89 1074.74,190.29 " fill="none" id="C_0002049188825706164566&lt;-C_0001473536569433029444" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="1105.76,103.54,1120.29,88.12,1118.54,109.24,1105.76,103.54" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1154.96,106.64 C1167.07,133.8 1181.82,166.89 1192.26,190.29 " fill="none" id="C_0002049188825706164566&lt;-C_0002049455532387561338" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="1148.46,109.24,1146.71,88.12,1161.24,103.54,1148.46,109.24" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M278.16,245.2 C265.38,261.36 247.93,283.45 232.43,303.05 " fill="none" id="C_0002082936326417164202-&gt;C_0000142374082478337852" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="237.91,307.4,220.02,318.75,226.93,298.72,237.91,307.4" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M78.91,245.2 C98.11,262.07 124.65,285.38 147.66,305.6 " fill="none" id="C_0000675132943535054947-&gt;C_0000142374082478337852" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="152.49,300.52,162.89,318.98,143.25,311.04,152.49,300.52" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M691.71,245.2 C700.63,260.88 712.72,282.13 723.62,301.28 " fill="none" id="C_0001678874302644303776-&gt;C_0001114634647721878603" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="729.76,297.9,733.57,318.75,717.59,304.83,729.76,297.9" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M816.64,245.2 C806.5,261.04 792.72,282.57 780.36,301.87 " fill="none" id="C_0001887786688778664182-&gt;C_0001114634647721878603" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="786.23,305.68,769.55,318.75,774.44,298.13,786.23,305.68" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M443.72,114.8 C404.31,142.96 358.78,175.49 328.91,196.84 " fill="none" id="C_0001373544984027721472&lt;-C_0002082936326417164202" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="454.39,107.17,447.1827,107.4053,444.6279,114.1486,451.8351,113.9133,454.39,107.17" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="415.5" cy="146.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="42" x="422.5" y="150.0669">border</text>
<path d="M415.38,84.92 C332.21,107.02 214.87,141.7 116.5,184 C107.83,187.73 98.83,192.31 90.41,196.94 " fill="none" id="C_0001373544984027721472&lt;-C_0000675132943535054947" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="428.17,81.55,421.3485,79.2117,416.5665,84.6091,423.3879,86.9474,428.17,81.55" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="242.5" cy="146.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="42" x="249.5" y="150.0669">divider</text>
<path d="M579.01,117 C605.73,144.67 636.11,176.11 656.19,196.9 " fill="none" id="C_0001373544984027721472&lt;-C_0001678874302644303776" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="569.73,107.39,571.0231,114.4842,578.0689,116.0192,576.7758,108.925,569.73,107.39" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="620.5" cy="146.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="70" x="627.5" y="150.0669">description</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="627.5" y="150.0669">title</text>
<path d="M628.35,112.05 C671.37,134.05 721.46,159.95 766.5,184 C774.24,188.13 782.45,192.61 790.34,196.96 " fill="none" id="C_0001373544984027721472&lt;-C_0001887786688778664182" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="616.7,106.1,620.2253,112.3906,627.3879,111.556,623.8626,105.2653,616.7,106.1" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="713.5" cy="146.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="70" x="720.5" y="150.0669">description</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -13,6 +13,12 @@ diagrams:
include:
namespaces:
- clanguml::t00028
plantuml:
after:
- >
note left of {{ alias("R") }}::ccc
Reference to C.
end note
```
## Source code
@@ -25,25 +31,21 @@ namespace clanguml {
namespace t00028 {
/// \uml{note[top] A class note.}
class A {
};
class A { };
/// \uml{note[] B class note.}
class B {
};
class B { };
///
/// @uml{note:t00028_class[bottom] C class note.}
/// This is class C.
class C {
};
class C { };
/// \uml{note
/// D
/// class
/// note.}
class D {
};
class D { };
/// \uml{note E template class note.}
template <typename T> class E {
@@ -51,8 +53,7 @@ template <typename T> class E {
};
/// \uml{note:other_diagram[left] G class note.}
class G {
};
class G { };
/// @uml{note[ bottom ] F enum note.}
enum class F { one, two, three };
@@ -64,8 +65,10 @@ class R {
{
}
/// \uml{note[left] R contains an instance of A.}
A aaa;
/// \uml{note:other_diagram[right] R contains an pointer to B.}
B *bbb;
C &ccc;
@@ -83,3 +86,386 @@ class R {
```
## Generated UML diagrams
![t00028_class](./t00028_class.svg "PlantUML note decorator test case")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"comment": {
"formatted": "\\uml{note[top] A class note.}",
"raw": "/// \\uml{note[top] A class note.}"
},
"display_name": "clanguml::t00028::A",
"id": "1519850480962783588",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00028",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 8
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"comment": {
"formatted": "\\uml{note[] B class note.}",
"raw": "/// \\uml{note[] B class note.}"
},
"display_name": "clanguml::t00028::B",
"id": "1980597091567213070",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "B",
"namespace": "clanguml::t00028",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 11
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"comment": {
"formatted": "\n @uml{note:t00028_class[bottom] C class note.}\n This is class C.",
"raw": "///\n/// @uml{note:t00028_class[bottom] C class note.}\n/// This is class C."
},
"display_name": "clanguml::t00028::C",
"id": "984577258575112753",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "C",
"namespace": "clanguml::t00028",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 16
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"comment": {
"formatted": "\\uml{note\nD\nclass\nnote.}",
"raw": "/// \\uml{note\n/// D\n/// class\n/// note.}"
},
"display_name": "clanguml::t00028::D",
"id": "1263778658518784070",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "D",
"namespace": "clanguml::t00028",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 22
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"comment": {
"formatted": "\\uml{note E template class note.}",
"raw": "/// \\uml{note E template class note.}"
},
"display_name": "clanguml::t00028::E<T>",
"id": "1014136565447389473",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "param",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 26
},
"type": "T"
}
],
"methods": [],
"name": "E",
"namespace": "clanguml::t00028",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 25
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"comment": {
"formatted": "\\uml{note:other_diagram[left] G class note.}",
"raw": "/// \\uml{note:other_diagram[left] G class note.}"
},
"display_name": "clanguml::t00028::G",
"id": "764713728396057122",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "G",
"namespace": "clanguml::t00028",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 30
},
"template_parameters": [],
"type": "class"
},
{
"comment": {
"formatted": "@uml{note[ bottom ] F enum note.}",
"raw": "/// @uml{note[ bottom ] F enum note.}"
},
"constants": [
"one",
"two",
"three"
],
"display_name": "clanguml::t00028::F",
"id": "589227897266388677",
"is_nested": false,
"name": "F",
"namespace": "clanguml::t00028",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 33
},
"type": "enum"
},
{
"bases": [],
"display_name": "clanguml::t00028::E<int>",
"id": "1949673179441298667",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "E",
"namespace": "clanguml::t00028",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "int"
}
],
"type": "class"
},
{
"bases": [],
"comment": {
"formatted": "\\uml{note[right] R class note.}",
"raw": "/// \\uml{note[right] R class note.}"
},
"display_name": "clanguml::t00028::R",
"id": "1189142882239313116",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [
{
"access": "private",
"comment": {
"formatted": "\\uml{note[left] R contains an instance of A.}",
"raw": "/// \\uml{note[left] R contains an instance of A.}"
},
"is_static": false,
"name": "aaa",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 43
},
"type": "clanguml::t00028::A"
},
{
"access": "private",
"comment": {
"formatted": "\\uml{note:other_diagram[right] R contains an pointer to B.}",
"raw": "/// \\uml{note:other_diagram[right] R contains an pointer to B.}"
},
"is_static": false,
"name": "bbb",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 46
},
"type": "clanguml::t00028::B *"
},
{
"access": "private",
"is_static": false,
"name": "ccc",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 48
},
"type": "clanguml::t00028::C &"
},
{
"access": "private",
"is_static": false,
"name": "ddd",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 50
},
"type": "std::vector<std::shared_ptr<D>>"
},
{
"access": "private",
"is_static": false,
"name": "eee",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 52
},
"type": "E<int>"
},
{
"access": "private",
"is_static": false,
"name": "ggg",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 54
},
"type": "clanguml::t00028::G **"
}
],
"methods": [
{
"access": "private",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "R",
"parameters": [
{
"name": "c",
"type": "clanguml::t00028::C &"
}
],
"type": "void"
}
],
"name": "R",
"namespace": "clanguml::t00028",
"source_location": {
"file": "../../tests/t00028/t00028.cc",
"line": 36
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00028_class",
"relationships": [
{
"access": "public",
"destination": "1014136565447389473",
"source": "1949673179441298667",
"type": "instantiation"
},
{
"access": "public",
"destination": "984577258575112753",
"source": "1189142882239313116",
"type": "dependency"
},
{
"access": "private",
"destination": "1519850480962783588",
"label": "aaa",
"source": "1189142882239313116",
"type": "aggregation"
},
{
"access": "private",
"destination": "1980597091567213070",
"label": "bbb",
"source": "1189142882239313116",
"type": "association"
},
{
"access": "private",
"destination": "984577258575112753",
"label": "ccc",
"source": "1189142882239313116",
"type": "association"
},
{
"access": "private",
"destination": "1263778658518784070",
"label": "ddd",
"source": "1189142882239313116",
"type": "aggregation"
},
{
"access": "private",
"destination": "1949673179441298667",
"label": "eee",
"source": "1189142882239313116",
"type": "aggregation"
},
{
"access": "private",
"destination": "764713728396057122",
"label": "ggg",
"source": "1189142882239313116",
"type": "association"
}
],
"using_namespace": "clanguml::t00028"
}
```

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="410px" preserveAspectRatio="none" style="width:877px;height:410px;" version="1.1" viewBox="0 0 877 410" width="877px" 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="410px" preserveAspectRatio="none" style="width:1109px;height:410px;" version="1.1" viewBox="0 0 1109 410" width="1109px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="fflc6v6dtkbgw" width="300%" x="-1" y="-1">
<filter height="300%" id="fghnfy7wqna39" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,186 +9,190 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L8" target="_top" title="\uml{note[top] A class note.}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L8" xlink:show="new" xlink:title="\uml{note[top] A class note.}" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fflc6v6dtkbgw)" height="48" id="C_0001519850480962783588" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="95" y="226.5"/>
<ellipse cx="110" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M112.9688,248.1406 Q112.3906,248.4375 111.75,248.5781 Q111.1094,248.7344 110.4063,248.7344 Q107.9063,248.7344 106.5781,247.0938 Q105.2656,245.4375 105.2656,242.3125 Q105.2656,239.1875 106.5781,237.5313 Q107.9063,235.875 110.4063,235.875 Q111.1094,235.875 111.75,236.0313 Q112.4063,236.1875 112.9688,236.4844 L112.9688,239.2031 Q112.3438,238.625 111.75,238.3594 Q111.1563,238.0781 110.5313,238.0781 Q109.1875,238.0781 108.5,239.1563 Q107.8125,240.2188 107.8125,242.3125 Q107.8125,244.4063 108.5,245.4844 Q109.1875,246.5469 110.5313,246.5469 Q111.1563,246.5469 111.75,246.2813 Q112.3438,246 112.9688,245.4219 L112.9688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="124" y="246.6543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="96" x2="134" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="96" x2="134" y1="266.5" y2="266.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L8" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L8" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fghnfy7wqna39)" height="48" id="C_0001519850480962783588" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="156.5" y="226.5"/>
<ellipse cx="171.5" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M174.4688,248.1406 Q173.8906,248.4375 173.25,248.5781 Q172.6094,248.7344 171.9063,248.7344 Q169.4063,248.7344 168.0781,247.0938 Q166.7656,245.4375 166.7656,242.3125 Q166.7656,239.1875 168.0781,237.5313 Q169.4063,235.875 171.9063,235.875 Q172.6094,235.875 173.25,236.0313 Q173.9063,236.1875 174.4688,236.4844 L174.4688,239.2031 Q173.8438,238.625 173.25,238.3594 Q172.6563,238.0781 172.0313,238.0781 Q170.6875,238.0781 170,239.1563 Q169.3125,240.2188 169.3125,242.3125 Q169.3125,244.4063 170,245.4844 Q170.6875,246.5469 172.0313,246.5469 Q172.6563,246.5469 173.25,246.2813 Q173.8438,246 174.4688,245.4219 L174.4688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="185.5" y="246.6543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="157.5" x2="195.5" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="157.5" x2="195.5" y1="266.5" y2="266.5"/>
</a>
<path d="M12.5,64.5 L12.5,89.6328 L115.5,89.6328 L115.5,74.5 L105.5,64.5 L12.5,64.5 " fill="#FBFB77" filter="url(#fflc6v6dtkbgw)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M105.5,64.5 L105.5,74.5 L115.5,74.5 L105.5,64.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="18.5" y="81.5669">A class note.</text>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L12" target="_top" title="\uml{note[] B class note.}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L12" xlink:show="new" xlink:title="\uml{note[] B class note.}" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fflc6v6dtkbgw)" height="48" id="C_0001980597091567213070" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="684" y="226.5"/>
<ellipse cx="699" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M701.9688,248.1406 Q701.3906,248.4375 700.75,248.5781 Q700.1094,248.7344 699.4063,248.7344 Q696.9063,248.7344 695.5781,247.0938 Q694.2656,245.4375 694.2656,242.3125 Q694.2656,239.1875 695.5781,237.5313 Q696.9063,235.875 699.4063,235.875 Q700.1094,235.875 700.75,236.0313 Q701.4063,236.1875 701.9688,236.4844 L701.9688,239.2031 Q701.3438,238.625 700.75,238.3594 Q700.1563,238.0781 699.5313,238.0781 Q698.1875,238.0781 697.5,239.1563 Q696.8125,240.2188 696.8125,242.3125 Q696.8125,244.4063 697.5,245.4844 Q698.1875,246.5469 699.5313,246.5469 Q700.1563,246.5469 700.75,246.2813 Q701.3438,246 701.9688,245.4219 L701.9688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="713" y="246.6543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="685" x2="723" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="685" x2="723" y1="266.5" y2="266.5"/>
<path d="M6,64.5 L6,89.6328 A0,0 0 0 0 6,89.6328 L61.49,89.6328 L160.49,226.42 L69.49,89.6328 L109,89.6328 A0,0 0 0 0 109,89.6328 L109,74.5 L99,64.5 L6,64.5 A0,0 0 0 0 6,64.5 " fill="#FBFB77" filter="url(#fghnfy7wqna39)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M99,64.5 L99,74.5 L109,74.5 L99,64.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="12" y="81.5669">A class note.</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L11" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L11" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fghnfy7wqna39)" height="48" id="C_0001980597091567213070" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="750.5" y="226.5"/>
<ellipse cx="765.5" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M768.4688,248.1406 Q767.8906,248.4375 767.25,248.5781 Q766.6094,248.7344 765.9063,248.7344 Q763.4063,248.7344 762.0781,247.0938 Q760.7656,245.4375 760.7656,242.3125 Q760.7656,239.1875 762.0781,237.5313 Q763.4063,235.875 765.9063,235.875 Q766.6094,235.875 767.25,236.0313 Q767.9063,236.1875 768.4688,236.4844 L768.4688,239.2031 Q767.8438,238.625 767.25,238.3594 Q766.6563,238.0781 766.0313,238.0781 Q764.6875,238.0781 764,239.1563 Q763.3125,240.2188 763.3125,242.3125 Q763.3125,244.4063 764,245.4844 Q764.6875,246.5469 766.0313,246.5469 Q766.6563,246.5469 767.25,246.2813 Q767.8438,246 768.4688,245.4219 L768.4688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="779.5" y="246.6543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="751.5" x2="789.5" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="751.5" x2="789.5" y1="266.5" y2="266.5"/>
</a>
<path d="M545.5,238 L545.5,263.1328 A0,0 0 0 0 545.5,263.1328 L648.5,263.1328 A0,0 0 0 0 648.5,263.1328 L648.5,256 L683.74,250.5 L648.5,248 L648.5,248 L638.5,238 L545.5,238 A0,0 0 0 0 545.5,238 " fill="#FBFB77" filter="url(#fflc6v6dtkbgw)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M638.5,238 L638.5,248 L648.5,248 L638.5,238 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="551.5" y="255.0669">B class note.</text>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L18" target="_top" title="@uml{note:t00028_class[bottom] C class note.} This is class C." xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L18" xlink:show="new" xlink:title="@uml{note:t00028_class[bottom] C class note.} This is class C." xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fflc6v6dtkbgw)" height="48" id="C_0000984577258575112753" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="247" y="226.5"/>
<ellipse cx="262" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M264.9688,248.1406 Q264.3906,248.4375 263.75,248.5781 Q263.1094,248.7344 262.4063,248.7344 Q259.9063,248.7344 258.5781,247.0938 Q257.2656,245.4375 257.2656,242.3125 Q257.2656,239.1875 258.5781,237.5313 Q259.9063,235.875 262.4063,235.875 Q263.1094,235.875 263.75,236.0313 Q264.4063,236.1875 264.9688,236.4844 L264.9688,239.2031 Q264.3438,238.625 263.75,238.3594 Q263.1563,238.0781 262.5313,238.0781 Q261.1875,238.0781 260.5,239.1563 Q259.8125,240.2188 259.8125,242.3125 Q259.8125,244.4063 260.5,245.4844 Q261.1875,246.5469 262.5313,246.5469 Q263.1563,246.5469 263.75,246.2813 Q264.3438,246 264.9688,245.4219 L264.9688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="276" y="246.6543">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="248" x2="286" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="248" x2="286" y1="266.5" y2="266.5"/>
<path d="M612,238 L612,263.1328 A0,0 0 0 0 612,263.1328 L715,263.1328 A0,0 0 0 0 715,263.1328 L715,256 L750.24,250.5 L715,248 L715,248 L705,238 L612,238 A0,0 0 0 0 612,238 " fill="#FBFB77" filter="url(#fghnfy7wqna39)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M705,238 L705,248 L715,248 L705,238 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="618" y="255.0669">B class note.</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L16" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L16" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fghnfy7wqna39)" height="48" id="C_0000984577258575112753" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="309.5" y="226.5"/>
<ellipse cx="324.5" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M327.4688,248.1406 Q326.8906,248.4375 326.25,248.5781 Q325.6094,248.7344 324.9063,248.7344 Q322.4063,248.7344 321.0781,247.0938 Q319.7656,245.4375 319.7656,242.3125 Q319.7656,239.1875 321.0781,237.5313 Q322.4063,235.875 324.9063,235.875 Q325.6094,235.875 326.25,236.0313 Q326.9063,236.1875 327.4688,236.4844 L327.4688,239.2031 Q326.8438,238.625 326.25,238.3594 Q325.6563,238.0781 325.0313,238.0781 Q323.6875,238.0781 323,239.1563 Q322.3125,240.2188 322.3125,242.3125 Q322.3125,244.4063 323,245.4844 Q323.6875,246.5469 325.0313,246.5469 Q325.6563,246.5469 326.25,246.2813 Q326.8438,246 327.4688,245.4219 L327.4688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="338.5" y="246.6543">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="348.5" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="310.5" x2="348.5" y1="266.5" y2="266.5"/>
</a>
<path d="M158.5,357 L158.5,382.1328 A0,0 0 0 0 158.5,382.1328 L261.5,382.1328 A0,0 0 0 0 261.5,382.1328 L261.5,367 L251.5,357 L219.68,357 L255.74,274.62 L211.68,357 L158.5,357 A0,0 0 0 0 158.5,357 " fill="#FBFB77" filter="url(#fflc6v6dtkbgw)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M251.5,357 L251.5,367 L261.5,367 L251.5,357 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="164.5" y="374.0669">C class note.</text>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L25" target="_top" title="\uml{note D class note.}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L25" xlink:show="new" xlink:title="\uml{note D class note.}" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fflc6v6dtkbgw)" height="48" id="C_0001263778658518784070" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="170.5" y="226.5"/>
<ellipse cx="185.5" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M188.4688,248.1406 Q187.8906,248.4375 187.25,248.5781 Q186.6094,248.7344 185.9063,248.7344 Q183.4063,248.7344 182.0781,247.0938 Q180.7656,245.4375 180.7656,242.3125 Q180.7656,239.1875 182.0781,237.5313 Q183.4063,235.875 185.9063,235.875 Q186.6094,235.875 187.25,236.0313 Q187.9063,236.1875 188.4688,236.4844 L188.4688,239.2031 Q187.8438,238.625 187.25,238.3594 Q186.6563,238.0781 186.0313,238.0781 Q184.6875,238.0781 184,239.1563 Q183.3125,240.2188 183.3125,242.3125 Q183.3125,244.4063 184,245.4844 Q184.6875,246.5469 186.0313,246.5469 Q186.6563,246.5469 187.25,246.2813 Q187.8438,246 188.4688,245.4219 L188.4688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="199.5" y="246.6543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="171.5" x2="210.5" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="171.5" x2="210.5" y1="266.5" y2="266.5"/>
<path d="M222,357 L222,382.1328 A0,0 0 0 0 222,382.1328 L325,382.1328 A0,0 0 0 0 325,382.1328 L325,367 L315,357 L283.08,357 L318.44,274.62 L275.08,357 L222,357 A0,0 0 0 0 222,357 " fill="#FBFB77" filter="url(#fghnfy7wqna39)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M315,357 L315,367 L325,367 L315,357 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="82" x="228" y="374.0669">C class note.</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L22" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L22" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fghnfy7wqna39)" height="48" id="C_0001263778658518784070" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="915" y="226.5"/>
<ellipse cx="930" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M932.9688,248.1406 Q932.3906,248.4375 931.75,248.5781 Q931.1094,248.7344 930.4063,248.7344 Q927.9063,248.7344 926.5781,247.0938 Q925.2656,245.4375 925.2656,242.3125 Q925.2656,239.1875 926.5781,237.5313 Q927.9063,235.875 930.4063,235.875 Q931.1094,235.875 931.75,236.0313 Q932.4063,236.1875 932.9688,236.4844 L932.9688,239.2031 Q932.3438,238.625 931.75,238.3594 Q931.1563,238.0781 930.5313,238.0781 Q929.1875,238.0781 928.5,239.1563 Q927.8125,240.2188 927.8125,242.3125 Q927.8125,244.4063 928.5,245.4844 Q929.1875,246.5469 930.5313,246.5469 Q931.1563,246.5469 931.75,246.2813 Q932.3438,246 932.9688,245.4219 L932.9688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="944" y="246.6543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="916" x2="955" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="916" x2="955" y1="266.5" y2="266.5"/>
</a>
<path d="M6,223 L6,278.3984 L60,278.3984 L60,233 L50,223 L6,223 " fill="#FBFB77" filter="url(#fflc6v6dtkbgw)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M50,223 L50,233 L60,233 L50,223 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="10" x="12" y="240.0669">D</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="12" y="255.1997">class</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="33" x="12" y="270.3325">note.</text>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L29" target="_top" title="\uml{note E template class note.}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L29" xlink:show="new" xlink:title="\uml{note E template class note.}" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fflc6v6dtkbgw)" height="60.8047" id="C_0001014136565447389473" style="stroke: #A80036; stroke-width: 1.5;" width="82" x="496" y="339"/>
<ellipse cx="524.95" cy="355" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M527.9188,360.6406 Q527.3406,360.9375 526.7,361.0781 Q526.0594,361.2344 525.3563,361.2344 Q522.8563,361.2344 521.5281,359.5938 Q520.2156,357.9375 520.2156,354.8125 Q520.2156,351.6875 521.5281,350.0313 Q522.8563,348.375 525.3563,348.375 Q526.0594,348.375 526.7,348.5313 Q527.3563,348.6875 527.9188,348.9844 L527.9188,351.7031 Q527.2938,351.125 526.7,350.8594 Q526.1063,350.5781 525.4813,350.5781 Q524.1375,350.5781 523.45,351.6563 Q522.7625,352.7188 522.7625,354.8125 Q522.7625,356.9063 523.45,357.9844 Q524.1375,359.0469 525.4813,359.0469 Q526.1063,359.0469 526.7,358.7813 Q527.2938,358.5 527.9188,357.9219 L527.9188,360.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="542.05" y="359.1543">E</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="572" y="336"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="573" y="348.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="497" x2="577" y1="371" y2="371"/>
<path d="M825.5,223 L825.5,278.3984 A0,0 0 0 0 825.5,278.3984 L879.5,278.3984 A0,0 0 0 0 879.5,278.3984 L879.5,254.5 L914.59,250.5 L879.5,246.5 L879.5,233 L869.5,223 L825.5,223 A0,0 0 0 0 825.5,223 " fill="#FBFB77" filter="url(#fghnfy7wqna39)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M869.5,223 L869.5,233 L879.5,233 L869.5,223 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="10" x="831.5" y="240.0669">D</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="831.5" y="255.1997">class</text>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="33" x="831.5" y="270.3325">note.</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L25" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L25" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fghnfy7wqna39)" height="60.8047" id="C_0001014136565447389473" style="stroke: #A80036; stroke-width: 1.5;" width="82" x="559.5" y="339"/>
<ellipse cx="588.45" cy="355" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M591.4188,360.6406 Q590.8406,360.9375 590.2,361.0781 Q589.5594,361.2344 588.8563,361.2344 Q586.3563,361.2344 585.0281,359.5938 Q583.7156,357.9375 583.7156,354.8125 Q583.7156,351.6875 585.0281,350.0313 Q586.3563,348.375 588.8563,348.375 Q589.5594,348.375 590.2,348.5313 Q590.8563,348.6875 591.4188,348.9844 L591.4188,351.7031 Q590.7938,351.125 590.2,350.8594 Q589.6063,350.5781 588.9813,350.5781 Q587.6375,350.5781 586.95,351.6563 Q586.2625,352.7188 586.2625,354.8125 Q586.2625,356.9063 586.95,357.9844 Q587.6375,359.0469 588.9813,359.0469 Q589.6063,359.0469 590.2,358.7813 Q590.7938,358.5 591.4188,357.9219 L591.4188,360.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="605.55" y="359.1543">E</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="635.5" y="336"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="636.5" y="348.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="560.5" x2="640.5" y1="371" y2="371"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L30" target="_top" title="param" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L30" xlink:show="new" xlink:title="param" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="502" y="377"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="504" y="379"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L26" target="_top" title="param" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L26" xlink:show="new" xlink:title="param" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="565.5" y="377"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="567.5" y="379"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L30" target="_top" title="param" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L30" xlink:show="new" xlink:title="param" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="56" x="516" y="385.2104">param : T</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L26" target="_top" title="param" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L26" xlink:show="new" xlink:title="param" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="56" x="579.5" y="385.2104">param : T</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="497" x2="577" y1="391.8047" y2="391.8047"/>
<path d="M297,357 L297,382.1328 A0,0 0 0 0 297,382.1328 L461,382.1328 A0,0 0 0 0 461,382.1328 L461,375 L495.78,369.5 L461,367 L461,367 L451,357 L297,357 A0,0 0 0 0 297,357 " fill="#FBFB77" filter="url(#fflc6v6dtkbgw)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M451,357 L451,367 L461,367 L451,357 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="143" x="303" y="374.0669">E template class note.</text>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L34" target="_top" title="\uml{note:other_diagram[left] G class note.}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L34" xlink:show="new" xlink:title="\uml{note:other_diagram[left] G class note.}" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fflc6v6dtkbgw)" height="48" id="C_0000764713728396057122" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="373.5" y="226.5"/>
<ellipse cx="388.5" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M391.4688,248.1406 Q390.8906,248.4375 390.25,248.5781 Q389.6094,248.7344 388.9063,248.7344 Q386.4063,248.7344 385.0781,247.0938 Q383.7656,245.4375 383.7656,242.3125 Q383.7656,239.1875 385.0781,237.5313 Q386.4063,235.875 388.9063,235.875 Q389.6094,235.875 390.25,236.0313 Q390.9063,236.1875 391.4688,236.4844 L391.4688,239.2031 Q390.8438,238.625 390.25,238.3594 Q389.6563,238.0781 389.0313,238.0781 Q387.6875,238.0781 387,239.1563 Q386.3125,240.2188 386.3125,242.3125 Q386.3125,244.4063 387,245.4844 Q387.6875,246.5469 389.0313,246.5469 Q389.6563,246.5469 390.25,246.2813 Q390.8438,246 391.4688,245.4219 L391.4688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="402.5" y="246.6543">G</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="374.5" x2="413.5" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="374.5" x2="413.5" y1="266.5" y2="266.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="560.5" x2="640.5" y1="391.8047" y2="391.8047"/>
<path d="M360.5,357 L360.5,382.1328 A0,0 0 0 0 360.5,382.1328 L524.5,382.1328 A0,0 0 0 0 524.5,382.1328 L524.5,375 L559.28,369.5 L524.5,367 L524.5,367 L514.5,357 L360.5,357 A0,0 0 0 0 360.5,357 " fill="#FBFB77" filter="url(#fghnfy7wqna39)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M514.5,357 L514.5,367 L524.5,367 L514.5,357 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="143" x="366.5" y="374.0669">E template class note.</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L30" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L30" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fghnfy7wqna39)" height="48" id="C_0000764713728396057122" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="440" y="226.5"/>
<ellipse cx="455" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M457.9688,248.1406 Q457.3906,248.4375 456.75,248.5781 Q456.1094,248.7344 455.4063,248.7344 Q452.9063,248.7344 451.5781,247.0938 Q450.2656,245.4375 450.2656,242.3125 Q450.2656,239.1875 451.5781,237.5313 Q452.9063,235.875 455.4063,235.875 Q456.1094,235.875 456.75,236.0313 Q457.4063,236.1875 457.9688,236.4844 L457.9688,239.2031 Q457.3438,238.625 456.75,238.3594 Q456.1563,238.0781 455.5313,238.0781 Q454.1875,238.0781 453.5,239.1563 Q452.8125,240.2188 452.8125,242.3125 Q452.8125,244.4063 453.5,245.4844 Q454.1875,246.5469 455.5313,246.5469 Q456.1563,246.5469 456.75,246.2813 Q457.3438,246 457.9688,245.4219 L457.9688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="469" y="246.6543">G</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="441" x2="480" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="441" x2="480" y1="266.5" y2="266.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L38" target="_top" title="@uml{note[ bottom ] F enum note.}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L38" xlink:show="new" xlink:title="@uml{note[ bottom ] F enum note.}" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fflc6v6dtkbgw)" height="86.4141" id="C_0000589227897266388677" style="stroke: #A80036; stroke-width: 1.5;" width="42" x="791" y="34"/>
<ellipse cx="807.35" cy="50" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M811.4594,56 L803.7406,56 L803.7406,43.6094 L811.4594,43.6094 L811.4594,45.7656 L806.1938,45.7656 L806.1938,48.4375 L810.9594,48.4375 L810.9594,50.5938 L806.1938,50.5938 L806.1938,53.8438 L811.4594,53.8438 L811.4594,56 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="821.65" y="54.1543">F</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="832" y1="66" y2="66"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="797" y="80.2104">one</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="797" y="93.0151">two</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="30" x="797" y="105.8198">three</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="792" x2="832" y1="112.4141" y2="112.4141"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L33" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L33" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fghnfy7wqna39)" height="86.4141" id="C_0000589227897266388677" style="stroke: #A80036; stroke-width: 1.5;" width="42" x="1023.5" y="34"/>
<ellipse cx="1039.85" cy="50" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1043.9594,56 L1036.2406,56 L1036.2406,43.6094 L1043.9594,43.6094 L1043.9594,45.7656 L1038.6938,45.7656 L1038.6938,48.4375 L1043.4594,48.4375 L1043.4594,50.5938 L1038.6938,50.5938 L1038.6938,53.8438 L1043.9594,53.8438 L1043.9594,56 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="7" x="1054.15" y="54.1543">F</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1024.5" x2="1064.5" y1="66" y2="66"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="1029.5" y="80.2104">one</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="1029.5" y="93.0151">two</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="30" x="1029.5" y="105.8198">three</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1024.5" x2="1064.5" y1="112.4141" y2="112.4141"/>
</a>
<path d="M759,238 L759,263.1328 A0,0 0 0 0 759,263.1328 L865,263.1328 A0,0 0 0 0 865,263.1328 L865,248 L855,238 L816,238 L812,120.39 L808,238 L759,238 A0,0 0 0 0 759,238 " fill="#FBFB77" filter="url(#fflc6v6dtkbgw)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M855,238 L855,248 L865,248 L855,238 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="765" y="255.0669">F enum note.</text>
<rect fill="#FEFECE" filter="url(#fflc6v6dtkbgw)" height="48" id="C_0001949673179441298667" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="450" y="226.5"/>
<ellipse cx="465" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M467.9688,248.1406 Q467.3906,248.4375 466.75,248.5781 Q466.1094,248.7344 465.4063,248.7344 Q462.9063,248.7344 461.5781,247.0938 Q460.2656,245.4375 460.2656,242.3125 Q460.2656,239.1875 461.5781,237.5313 Q462.9063,235.875 465.4063,235.875 Q466.1094,235.875 466.75,236.0313 Q467.4063,236.1875 467.9688,236.4844 L467.9688,239.2031 Q467.3438,238.625 466.75,238.3594 Q466.1563,238.0781 465.5313,238.0781 Q464.1875,238.0781 463.5,239.1563 Q462.8125,240.2188 462.8125,242.3125 Q462.8125,244.4063 463.5,245.4844 Q464.1875,246.5469 465.5313,246.5469 Q466.1563,246.5469 466.75,246.2813 Q467.3438,246 467.9688,245.4219 L467.9688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="479" y="246.6543">E</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="495" y="223.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="496" y="235.6387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="451" x2="509" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="451" x2="509" y1="266.5" y2="266.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L41" target="_top" title="\uml{note[right] R class note.}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L41" xlink:show="new" xlink:title="\uml{note[right] R class note.}" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fflc6v6dtkbgw)" height="137.6328" id="C_0001189142882239313116" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="193" y="8"/>
<ellipse cx="310.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M313.7188,29.6406 Q313.1406,29.9375 312.5,30.0781 Q311.8594,30.2344 311.1563,30.2344 Q308.6563,30.2344 307.3281,28.5938 Q306.0156,26.9375 306.0156,23.8125 Q306.0156,20.6875 307.3281,19.0313 Q308.6563,17.375 311.1563,17.375 Q311.8594,17.375 312.5,17.5313 Q313.1563,17.6875 313.7188,17.9844 L313.7188,20.7031 Q313.0938,20.125 312.5,19.8594 Q311.9063,19.5781 311.2813,19.5781 Q309.9375,19.5781 309.25,20.6563 Q308.5625,21.7188 308.5625,23.8125 Q308.5625,25.9063 309.25,26.9844 Q309.9375,28.0469 311.2813,28.0469 Q311.9063,28.0469 312.5,27.7813 Q313.0938,27.5 313.7188,26.9219 L313.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="331.25" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="194" x2="444" y1="40" y2="40"/>
<path d="M991.5,238 L991.5,263.1328 A0,0 0 0 0 991.5,263.1328 L1097.5,263.1328 A0,0 0 0 0 1097.5,263.1328 L1097.5,248 L1087.5,238 L1048.5,238 L1044.5,120.39 L1040.5,238 L991.5,238 A0,0 0 0 0 991.5,238 " fill="#FBFB77" filter="url(#fghnfy7wqna39)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1087.5,238 L1087.5,248 L1097.5,248 L1087.5,238 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="997.5" y="255.0669">F enum note.</text>
<rect fill="#FEFECE" filter="url(#fghnfy7wqna39)" height="48" id="C_0001949673179441298667" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="516.5" y="226.5"/>
<ellipse cx="531.5" cy="242.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M534.4688,248.1406 Q533.8906,248.4375 533.25,248.5781 Q532.6094,248.7344 531.9063,248.7344 Q529.4063,248.7344 528.0781,247.0938 Q526.7656,245.4375 526.7656,242.3125 Q526.7656,239.1875 528.0781,237.5313 Q529.4063,235.875 531.9063,235.875 Q532.6094,235.875 533.25,236.0313 Q533.9063,236.1875 534.4688,236.4844 L534.4688,239.2031 Q533.8438,238.625 533.25,238.3594 Q532.6563,238.0781 532.0313,238.0781 Q530.6875,238.0781 530,239.1563 Q529.3125,240.2188 529.3125,242.3125 Q529.3125,244.4063 530,245.4844 Q530.6875,246.5469 532.0313,246.5469 Q532.6563,246.5469 533.25,246.2813 Q533.8438,246 534.4688,245.4219 L534.4688,248.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="545.5" y="246.6543">E</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="561.5" y="223.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="562.5" y="235.6387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="517.5" x2="575.5" y1="258.5" y2="258.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="517.5" x2="575.5" y1="266.5" y2="266.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L36" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L36" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fghnfy7wqna39)" height="137.6328" id="C_0001189142882239313116" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="377.5" y="8"/>
<ellipse cx="495.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M498.2188,29.6406 Q497.6406,29.9375 497,30.0781 Q496.3594,30.2344 495.6563,30.2344 Q493.1563,30.2344 491.8281,28.5938 Q490.5156,26.9375 490.5156,23.8125 Q490.5156,20.6875 491.8281,19.0313 Q493.1563,17.375 495.6563,17.375 Q496.3594,17.375 497,17.5313 Q497.6563,17.6875 498.2188,17.9844 L498.2188,20.7031 Q497.5938,20.125 497,19.8594 Q496.4063,19.5781 495.7813,19.5781 Q494.4375,19.5781 493.75,20.6563 Q493.0625,21.7188 493.0625,23.8125 Q493.0625,25.9063 493.75,26.9844 Q494.4375,28.0469 495.7813,28.0469 Q496.4063,28.0469 497,27.7813 Q497.5938,27.5 498.2188,26.9219 L498.2188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="515.75" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="378.5" x2="628.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L47" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L47" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="199" y="46"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="201" y="48"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L43" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L43" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="383.5" y="46"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="385.5" y="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L47" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L47" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="213" y="54.2104">aaa : A</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L43" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L43" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="397.5" y="54.2104">aaa : A</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L49" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L49" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="199" y="58.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="201" y="60.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L46" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L46" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="383.5" y="58.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="385.5" y="60.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L49" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L49" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="51" x="213" y="67.0151">bbb : B *</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L46" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L46" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="51" x="397.5" y="67.0151">bbb : B *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L51" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L51" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="199" y="71.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="201" y="73.6094"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L48" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L48" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="383.5" y="71.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="385.5" y="73.6094"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L51" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L51" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="52" x="213" y="79.8198">ccc : C &amp;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L48" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L48" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="52" x="397.5" y="79.8198">ccc : C &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L53" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L53" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="199" y="84.4141"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="201" y="86.4141"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L50" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L50" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="383.5" y="84.4141"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="385.5" y="86.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L53" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L53" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="226" x="213" y="92.6245">ddd : std::vector&lt;std::shared_ptr&lt;D&gt;&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L50" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L50" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="226" x="397.5" y="92.6245">ddd : std::vector&lt;std::shared_ptr&lt;D&gt;&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L55" target="_top" title="eee" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L55" xlink:show="new" xlink:title="eee" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="199" y="97.2188"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="201" y="99.2188"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L52" target="_top" title="eee" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L52" xlink:show="new" xlink:title="eee" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="383.5" y="97.2188"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="385.5" y="99.2188"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L55" target="_top" title="eee" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L55" xlink:show="new" xlink:title="eee" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="213" y="105.4292">eee : E&lt;int&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L52" target="_top" title="eee" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L52" xlink:show="new" xlink:title="eee" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="397.5" y="105.4292">eee : E&lt;int&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L57" target="_top" title="ggg" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L57" xlink:show="new" xlink:title="ggg" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="199" y="110.0234"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="201" y="112.0234"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L54" target="_top" title="ggg" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L54" xlink:show="new" xlink:title="ggg" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="383.5" y="110.0234"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="385.5" y="112.0234"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L57" target="_top" title="ggg" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00028/t00028.cc#L57" xlink:show="new" xlink:title="ggg" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="58" x="213" y="118.2339">ggg : G **</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L54" target="_top" title="ggg" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00028/t00028.cc#L54" xlink:show="new" xlink:title="ggg" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="58" x="397.5" y="118.2339">ggg : G **</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="194" x2="444" y1="124.8281" y2="124.8281"/>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="201" y="132.8281"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="213" y="139.0386">R(C &amp; c) : void</text>
<path d="M480,64.5 L480,73 L445.29,77 L480,81 L480,89.6328 A0,0 0 0 0 480,89.6328 L582,89.6328 A0,0 0 0 0 582,89.6328 L582,74.5 L572,64.5 L480,64.5 A0,0 0 0 0 480,64.5 " fill="#FBFB77" filter="url(#fflc6v6dtkbgw)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M572,64.5 L572,74.5 L582,74.5 L572,64.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="486" y="81.5669">R class note.</text>
<path d="M65.13,89.71 C67.4,110.82 73.43,156.48 86,193 C89.91,204.36 95.75,216.29 101.17,226.25 " fill="none" id="GMN436-C_0001519850480962783588" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M50.47,222.82 C61.22,208.48 76.4,192.37 94.5,184.5 C110.8,177.41 118.35,177.07 134.5,184.5 C153.13,193.08 167.92,211.17 177.68,226.24 " fill="none" id="GMN448-C_0001263778658518784070" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M491.26,274.62 C497.66,287.75 505.92,304.71 513.66,320.59 " fill="none" id="C_0001949673179441298667-&gt;C_0001014136565447389473" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="520.05,317.72,522.51,338.76,507.46,323.85,520.05,317.72" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M292.61,146.14 C289.15,156.08 285.84,166.25 283,176 C278.68,190.85 274.93,207.7 272.15,221.51 " fill="none" id="C_0001189142882239313116-&gt;C_0000984577258575112753" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="271.17,226.45,276.8438,218.3997,272.1423,221.5455,268.9966,216.844,271.17,226.45" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M298.3,146.27 C290.36,172.45 281.74,200.9 275.55,221.29 " fill="none" id="C_0001189142882239313116-&gt;C_0000984577258575112753-1" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="274.04,226.29,280.488,218.8453,275.4964,221.5068,272.8349,216.5151,274.04,226.29" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="292" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="21" x="302" y="189.0669">ccc</text>
<path d="M203.1,154.06 C194.03,161.19 185.22,168.54 177,176 C160.19,191.26 143.74,211.05 132.02,226.25 " fill="none" id="C_0001189142882239313116&lt;-C_0001519850480962783588" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="213.42,146.13,206.2253,146.6154,203.9061,153.4433,211.1008,152.958,213.42,146.13" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="180" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="190" y="189.0669">aaa</text>
<path d="M445.06,138.64 C450.77,141.17 456.44,143.63 462,146 C551.17,183.95 580.26,177.82 666,223 C670.48,225.36 675.06,228.17 679.42,231.05 " fill="none" id="C_0001189142882239313116-&gt;C_0001980597091567213070" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="683.68,233.95,678.483,225.584,679.544,231.1404,673.9876,232.2015,683.68,233.95" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="601" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="611" y="189.0669">bbb</text>
<path d="M247.86,156.34 C242.68,162.87 237.66,169.47 233,176 C221.56,192.03 210.59,211.42 202.73,226.26 " fill="none" id="C_0001189142882239313116&lt;-C_0001263778658518784070" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="256.13,146.17,249.2413,148.3021,248.5599,155.4809,255.4486,153.3488,256.13,146.17" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="236" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="246" y="189.0669">ddd</text>
<path d="M395.17,156.04 C401.57,162.76 407.92,169.48 414,176 C429.56,192.68 446.77,211.86 459.71,226.45 " fill="none" id="C_0001189142882239313116&lt;-C_0001949673179441298667" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="385.78,146.22,387.0346,153.3211,394.072,154.8943,392.8174,147.7931,385.78,146.22" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="432" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="442" y="189.0669">eee</text>
<path d="M348.86,146.27 C360.35,172.56 372.85,201.14 381.78,221.55 " fill="none" id="C_0001189142882239313116-&gt;C_0000764713728396057122" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="383.85,226.29,383.9185,216.4414,381.8512,221.7069,376.5856,219.6395,383.85,226.29" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="371" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="381" y="189.0669">ggg</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="378.5" x2="628.5" y1="124.8281" y2="124.8281"/>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="385.5" y="132.8281"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="397.5" y="139.0386">R(C &amp; c) : void</text>
<path d="M664.5,64.5 L664.5,73 L629.79,77 L664.5,81 L664.5,89.6328 A0,0 0 0 0 664.5,89.6328 L766.5,89.6328 A0,0 0 0 0 766.5,89.6328 L766.5,74.5 L756.5,64.5 L664.5,64.5 A0,0 0 0 0 664.5,64.5 " fill="#FBFB77" filter="url(#fghnfy7wqna39)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M756.5,64.5 L756.5,74.5 L766.5,74.5 L756.5,64.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="81" x="670.5" y="81.5669">R class note.</text>
<path d="M144.5,42 L144.5,67.1328 A0,0 0 0 0 144.5,67.1328 L342.5,67.1328 A0,0 0 0 0 342.5,67.1328 L342.5,60 L381.5,50.4023 L342.5,52 L342.5,52 L332.5,42 L144.5,42 A0,0 0 0 0 144.5,42 " fill="#FBFB77" filter="url(#fghnfy7wqna39)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M332.5,42 L332.5,52 L342.5,52 L332.5,42 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="177" x="150.5" y="59.0669">R contains an instance of A.</text>
<path d="M144.5,77.1328 L144.5,102.2656 A0,0 0 0 0 144.5,102.2656 L263.5,102.2656 A0,0 0 0 0 263.5,102.2656 L263.5,95.1328 L381.5,76.0117 L263.5,87.1328 L263.5,87.1328 L253.5,77.1328 L144.5,77.1328 A0,0 0 0 0 144.5,77.1328 " fill="#FBFB77" filter="url(#fghnfy7wqna39)" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M253.5,77.1328 L253.5,87.1328 L263.5,87.1328 L253.5,77.1328 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="98" x="150.5" y="94.1997">Reference to C.</text>
<path d="M557.17,274.62 C563.23,287.75 571.06,304.71 578.39,320.59 " fill="none" id="C_0001949673179441298667-&gt;C_0001014136565447389473" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="584.75,317.67,586.78,338.76,572.04,323.54,584.75,317.67" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M379.77,146.22 C369.29,155.27 359.61,165.21 351.5,176 C341.66,189.09 336.2,206.55 333.18,221.17 " fill="none" id="C_0001189142882239313116-&gt;C_0000984577258575112753" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="332.17,226.41,337.7942,218.3249,333.1121,221.4996,329.9375,216.8175,332.17,226.41" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M434.48,146.03 C405.72,174.38 374.22,205.43 353.3,226.04 " fill="none" id="C_0001189142882239313116-&gt;C_0000984577258575112753-1" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="349.52,229.77,358.7406,226.3087,353.0839,226.2631,353.1295,220.6064,349.52,229.77" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="404.5" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="21" x="414.5" y="189.0669">ccc</text>
<path d="M365.34,143.25 C328.71,160.57 298.62,174.86 296.5,176 C260.61,195.41 220.48,220.78 196.91,236.06 " fill="none" id="C_0001189142882239313116&lt;-C_0001519850480962783588" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="377.43,137.53,370.2961,136.4776,366.5809,142.658,373.7148,143.7104,377.43,137.53" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="299.5" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="309.5" y="189.0669">aaa</text>
<path d="M613.34,146.16 C651.32,170.1 694,197.4 732.5,223 C737.01,226 741.78,229.26 746.36,232.43 " fill="none" id="C_0001189142882239313116-&gt;C_0001980597091567213070" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="750.5,235.3,745.3893,226.881,746.3932,232.448,740.8261,233.4519,750.5,235.3" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="686.5" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="696.5" y="189.0669">bbb</text>
<path d="M641.83,144.16 C643.4,144.78 644.95,145.4 646.5,146 C754.84,188.19 791.7,172.66 896.5,223 C902.7,225.98 909.03,229.85 914.74,233.72 " fill="none" id="C_0001189142882239313116&lt;-C_0001263778658518784070" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="629.78,139.24,633.8301,145.2063,640.8952,143.7625,636.8451,137.7962,629.78,139.24" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="820.5" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="830.5" y="189.0669">ddd</text>
<path d="M523.82,159.05 C529.99,183.66 536.29,208.79 540.68,226.29 " fill="none" id="C_0001189142882239313116&lt;-C_0001949673179441298667" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="520.62,146.27,518.1983,153.0623,523.5366,157.9102,525.9584,151.1179,520.62,146.27" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="534.5" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="544.5" y="189.0669">eee</text>
<path d="M486.38,146.27 C479.82,172.45 472.69,200.9 467.57,221.29 " fill="none" id="C_0001189142882239313116-&gt;C_0000764713728396057122" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="466.32,226.29,472.3888,218.5331,467.536,221.4401,464.629,216.5874,466.32,226.29" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="481.5" y="182.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="491.5" y="189.0669">ggg</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -24,12 +24,10 @@ File t00029.cc
namespace clanguml {
namespace t00029 {
class A {
};
class A { };
/// \uml{skip}
class B {
};
class B { };
template <typename T> class C {
T param;
@@ -45,17 +43,13 @@ enum class E { one, two, three };
/// \uml{skip}
enum class F { red, green, blue };
class G1 {
};
class G1 { };
class G2 {
};
class G2 { };
class G3 {
};
class G3 { };
class G4 {
};
class G4 { };
struct R {
G1 g1;
@@ -75,3 +69,239 @@ struct R {
```
## Generated UML diagrams
![t00029_class](./t00029_class.svg "PlantUML skip decorator test case")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00029::A",
"id": "1970994826766369014",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00029",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 7
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00029::C<T>",
"id": "543766389270348470",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "param",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 13
},
"type": "T"
}
],
"methods": [],
"name": "C",
"namespace": "clanguml::t00029",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 12
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"constants": [
"one",
"two",
"three"
],
"display_name": "clanguml::t00029::E",
"id": "1936873082456592219",
"is_nested": false,
"name": "E",
"namespace": "clanguml::t00029",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 21
},
"type": "enum"
},
{
"bases": [],
"display_name": "clanguml::t00029::G1",
"id": "1980718063838190763",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "G1",
"namespace": "clanguml::t00029",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 26
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00029::G2",
"id": "2204627213593766591",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "G2",
"namespace": "clanguml::t00029",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 28
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00029::G3",
"id": "767180516665070631",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "G3",
"namespace": "clanguml::t00029",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 30
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00029::G4",
"id": "715074622924270214",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "G4",
"namespace": "clanguml::t00029",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 32
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00029::R",
"id": "348749731659902910",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "g1",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 35
},
"type": "clanguml::t00029::G1"
},
{
"access": "public",
"comment": {
"formatted": "\\uml{skiprelationship}",
"raw": "/// \\uml{skiprelationship}"
},
"is_static": false,
"name": "g3",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 41
},
"type": "clanguml::t00029::G3 &"
},
{
"access": "public",
"is_static": false,
"name": "g4",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 43
},
"type": "std::shared_ptr<G4>"
}
],
"methods": [],
"name": "R",
"namespace": "clanguml::t00029",
"source_location": {
"file": "../../tests/t00029/t00029.cc",
"line": 34
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00029_class",
"relationships": [
{
"access": "public",
"destination": "1980718063838190763",
"label": "g1",
"source": "348749731659902910",
"type": "aggregation"
},
{
"access": "public",
"destination": "715074622924270214",
"label": "g4",
"source": "348749731659902910",
"type": "association"
}
],
"using_namespace": "clanguml::t00029"
}
```

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:464px;height:230px;" version="1.1" viewBox="0 0 464 230" width="464px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1a3b8vt5x4hzw" width="300%" x="-1" y="-1">
<filter height="300%" id="f25nl3qvz9a74" width="300%" x="-1" y="-1">
<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"/>
<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>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1a3b8vt5x4hzw)" height="48" id="C_0001970994826766369014" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="10.5" y="27"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f25nl3qvz9a74)" height="48" id="C_0001970994826766369014" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="10.5" y="27"/>
<ellipse cx="25.5" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M28.4688,48.6406 Q27.8906,48.9375 27.25,49.0781 Q26.6094,49.2344 25.9063,49.2344 Q23.4063,49.2344 22.0781,47.5938 Q20.7656,45.9375 20.7656,42.8125 Q20.7656,39.6875 22.0781,38.0313 Q23.4063,36.375 25.9063,36.375 Q26.6094,36.375 27.25,36.5313 Q27.9063,36.6875 28.4688,36.9844 L28.4688,39.7031 Q27.8438,39.125 27.25,38.8594 Q26.6563,38.5781 26.0313,38.5781 Q24.6875,38.5781 24,39.6563 Q23.3125,40.7188 23.3125,42.8125 Q23.3125,44.9063 24,45.9844 Q24.6875,47.0469 26.0313,47.0469 Q26.6563,47.0469 27.25,46.7813 Q27.8438,46.5 28.4688,45.9219 L28.4688,48.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="39.5" y="47.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="11.5" x2="49.5" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="11.5" x2="49.5" y1="67" y2="67"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L14" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L14" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1a3b8vt5x4hzw)" height="60.8047" id="C_0000543766389270348470" style="stroke: #A80036; stroke-width: 1.5;" width="82" x="85.5" y="20.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L12" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L12" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f25nl3qvz9a74)" height="60.8047" id="C_0000543766389270348470" style="stroke: #A80036; stroke-width: 1.5;" width="82" x="85.5" y="20.5"/>
<ellipse cx="114.45" cy="36.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M117.4188,42.1406 Q116.8406,42.4375 116.2,42.5781 Q115.5594,42.7344 114.8563,42.7344 Q112.3563,42.7344 111.0281,41.0938 Q109.7156,39.4375 109.7156,36.3125 Q109.7156,33.1875 111.0281,31.5313 Q112.3563,29.875 114.8563,29.875 Q115.5594,29.875 116.2,30.0313 Q116.8563,30.1875 117.4188,30.4844 L117.4188,33.2031 Q116.7938,32.625 116.2,32.3594 Q115.6063,32.0781 114.9813,32.0781 Q113.6375,32.0781 112.95,33.1563 Q112.2625,34.2188 112.2625,36.3125 Q112.2625,38.4063 112.95,39.4844 Q113.6375,40.5469 114.9813,40.5469 Q115.6063,40.5469 116.2,40.2813 Q116.7938,40 117.4188,39.4219 L117.4188,42.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="131.55" y="40.6543">C</text>
@@ -26,16 +26,16 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="162.5" y="29.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="86.5" x2="166.5" y1="52.5" y2="52.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L15" target="_top" title="param" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L15" xlink:show="new" xlink:title="param" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L13" target="_top" title="param" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L13" xlink:show="new" xlink:title="param" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="91.5" y="58.5"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="93.5" y="60.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L15" target="_top" title="param" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L15" xlink:show="new" xlink:title="param" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L13" target="_top" title="param" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L13" xlink:show="new" xlink:title="param" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="56" x="105.5" y="66.7104">param : T</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="86.5" x2="166.5" y1="73.3047" y2="73.3047"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L23" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L23" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1a3b8vt5x4hzw)" height="86.4141" id="C_0001936873082456592219" style="stroke: #A80036; stroke-width: 1.5;" width="42" x="202.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L21" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L21" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f25nl3qvz9a74)" height="86.4141" id="C_0001936873082456592219" style="stroke: #A80036; stroke-width: 1.5;" width="42" x="202.5" y="8"/>
<ellipse cx="218.4" cy="24" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M222.5094,30 L214.7906,30 L214.7906,17.6094 L222.5094,17.6094 L222.5094,19.7656 L217.2438,19.7656 L217.2438,22.4375 L222.0094,22.4375 L222.0094,24.5938 L217.2438,24.5938 L217.2438,27.8438 L222.5094,27.8438 L222.5094,30 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="232.6" y="28.1543">E</text>
@@ -45,64 +45,64 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="30" x="208.5" y="79.8198">three</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="203.5" x2="243.5" y1="86.4141" y2="86.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L28" target="_top" title="G1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L28" xlink:show="new" xlink:title="G1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1a3b8vt5x4hzw)" height="48" id="C_0001980718063838190763" style="stroke: #A80036; stroke-width: 1.5;" width="49" x="300" y="171"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L26" target="_top" title="G1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L26" xlink:show="new" xlink:title="G1" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f25nl3qvz9a74)" height="48" id="C_0001980718063838190763" style="stroke: #A80036; stroke-width: 1.5;" width="49" x="300" y="171"/>
<ellipse cx="315" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M317.9688,192.6406 Q317.3906,192.9375 316.75,193.0781 Q316.1094,193.2344 315.4063,193.2344 Q312.9063,193.2344 311.5781,191.5938 Q310.2656,189.9375 310.2656,186.8125 Q310.2656,183.6875 311.5781,182.0313 Q312.9063,180.375 315.4063,180.375 Q316.1094,180.375 316.75,180.5313 Q317.4063,180.6875 317.9688,180.9844 L317.9688,183.7031 Q317.3438,183.125 316.75,182.8594 Q316.1563,182.5781 315.5313,182.5781 Q314.1875,182.5781 313.5,183.6563 Q312.8125,184.7188 312.8125,186.8125 Q312.8125,188.9063 313.5,189.9844 Q314.1875,191.0469 315.5313,191.0469 Q316.1563,191.0469 316.75,190.7813 Q317.3438,190.5 317.9688,189.9219 L317.9688,192.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="17" x="329" y="191.1543">G1</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="301" x2="348" y1="203" y2="203"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="301" x2="348" y1="211" y2="211"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L31" target="_top" title="G2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L31" xlink:show="new" xlink:title="G2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1a3b8vt5x4hzw)" height="48" id="C_0002204627213593766591" style="stroke: #A80036; stroke-width: 1.5;" width="49" x="6" y="171"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L28" target="_top" title="G2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L28" xlink:show="new" xlink:title="G2" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f25nl3qvz9a74)" height="48" id="C_0002204627213593766591" style="stroke: #A80036; stroke-width: 1.5;" width="49" x="6" y="171"/>
<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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="17" x="35" y="191.1543">G2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="54" y1="203" y2="203"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="54" y1="211" y2="211"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L34" target="_top" title="G3" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L34" xlink:show="new" xlink:title="G3" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1a3b8vt5x4hzw)" height="48" id="C_0000767180516665070631" style="stroke: #A80036; stroke-width: 1.5;" width="49" x="90" y="171"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L30" target="_top" title="G3" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L30" xlink:show="new" xlink:title="G3" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f25nl3qvz9a74)" height="48" id="C_0000767180516665070631" style="stroke: #A80036; stroke-width: 1.5;" width="49" x="90" y="171"/>
<ellipse cx="105" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M107.9688,192.6406 Q107.3906,192.9375 106.75,193.0781 Q106.1094,193.2344 105.4063,193.2344 Q102.9063,193.2344 101.5781,191.5938 Q100.2656,189.9375 100.2656,186.8125 Q100.2656,183.6875 101.5781,182.0313 Q102.9063,180.375 105.4063,180.375 Q106.1094,180.375 106.75,180.5313 Q107.4063,180.6875 107.9688,180.9844 L107.9688,183.7031 Q107.3438,183.125 106.75,182.8594 Q106.1563,182.5781 105.5313,182.5781 Q104.1875,182.5781 103.5,183.6563 Q102.8125,184.7188 102.8125,186.8125 Q102.8125,188.9063 103.5,189.9844 Q104.1875,191.0469 105.5313,191.0469 Q106.1563,191.0469 106.75,190.7813 Q107.3438,190.5 107.9688,189.9219 L107.9688,192.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="17" x="119" y="191.1543">G3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="91" x2="138" y1="203" y2="203"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="91" x2="138" y1="211" y2="211"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L37" target="_top" title="G4" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L37" xlink:show="new" xlink:title="G4" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1a3b8vt5x4hzw)" height="48" id="C_0000715074622924270214" style="stroke: #A80036; stroke-width: 1.5;" width="49" x="384" y="171"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L32" target="_top" title="G4" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L32" xlink:show="new" xlink:title="G4" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f25nl3qvz9a74)" height="48" id="C_0000715074622924270214" style="stroke: #A80036; stroke-width: 1.5;" width="49" x="384" y="171"/>
<ellipse cx="399" cy="187" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M401.9688,192.6406 Q401.3906,192.9375 400.75,193.0781 Q400.1094,193.2344 399.4063,193.2344 Q396.9063,193.2344 395.5781,191.5938 Q394.2656,189.9375 394.2656,186.8125 Q394.2656,183.6875 395.5781,182.0313 Q396.9063,180.375 399.4063,180.375 Q400.1094,180.375 400.75,180.5313 Q401.4063,180.6875 401.9688,180.9844 L401.9688,183.7031 Q401.3438,183.125 400.75,182.8594 Q400.1563,182.5781 399.5313,182.5781 Q398.1875,182.5781 397.5,183.6563 Q396.8125,184.7188 396.8125,186.8125 Q396.8125,188.9063 397.5,189.9844 Q398.1875,191.0469 399.5313,191.0469 Q400.1563,191.0469 400.75,190.7813 Q401.3438,190.5 401.9688,189.9219 L401.9688,192.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="17" x="413" y="191.1543">G4</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="385" x2="432" y1="203" y2="203"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="385" x2="432" y1="211" y2="211"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L40" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L40" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1a3b8vt5x4hzw)" height="86.4141" id="C_0000348749731659902910" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="279.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L34" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L34" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f25nl3qvz9a74)" height="86.4141" id="C_0000348749731659902910" style="stroke: #A80036; stroke-width: 1.5;" width="174" x="279.5" y="8"/>
<ellipse cx="358.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M361.2188,29.6406 Q360.6406,29.9375 360,30.0781 Q359.3594,30.2344 358.6563,30.2344 Q356.1563,30.2344 354.8281,28.5938 Q353.5156,26.9375 353.5156,23.8125 Q353.5156,20.6875 354.8281,19.0313 Q356.1563,17.375 358.6563,17.375 Q359.3594,17.375 360,17.5313 Q360.6563,17.6875 361.2188,17.9844 L361.2188,20.7031 Q360.5938,20.125 360,19.8594 Q359.4063,19.5781 358.7813,19.5781 Q357.4375,19.5781 356.75,20.6563 Q356.0625,21.7188 356.0625,23.8125 Q356.0625,25.9063 356.75,26.9844 Q357.4375,28.0469 358.7813,28.0469 Q359.4063,28.0469 360,27.7813 Q360.5938,27.5 361.2188,26.9219 L361.2188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="378.75" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="280.5" x2="452.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L41" target="_top" title="g1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L41" xlink:show="new" xlink:title="g1" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L35" target="_top" title="g1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L35" xlink:show="new" xlink:title="g1" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="285.5" y="46"/>
<ellipse cx="290.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L41" target="_top" title="g1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L41" xlink:show="new" xlink:title="g1" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L35" target="_top" title="g1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L35" xlink:show="new" xlink:title="g1" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="42" x="299.5" y="54.2104">g1 : G1</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L47" target="_top" title="\uml{skiprelationship}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L47" xlink:show="new" xlink:title="\uml{skiprelationship}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L41" target="_top" title="g3" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L41" xlink:show="new" xlink:title="g3" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="285.5" y="58.8047"/>
<ellipse cx="290.5" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L47" target="_top" title="\uml{skiprelationship}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L47" xlink:show="new" xlink:title="\uml{skiprelationship}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L41" target="_top" title="g3" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L41" xlink:show="new" xlink:title="g3" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="56" x="299.5" y="67.0151">g3 : G3 &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L49" target="_top" title="g4" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L49" xlink:show="new" xlink:title="g4" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L43" target="_top" title="g4" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L43" xlink:show="new" xlink:title="g4" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="285.5" y="71.6094"/>
<ellipse cx="290.5" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L49" target="_top" title="g4" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00029/t00029.cc#L49" xlink:show="new" xlink:title="g4" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L43" target="_top" title="g4" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00029/t00029.cc#L43" xlink:show="new" xlink:title="g4" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="299.5" y="79.8198">g4 : std::shared_ptr&lt;G4&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="280.5" x2="452.5" y1="86.4141" y2="86.4141"/>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -24,20 +24,15 @@ File t00030.cc
namespace clanguml {
namespace t00030 {
class A {
};
class A { };
class B {
};
class B { };
class C {
};
class C { };
class D {
};
class D { };
class E {
};
class E { };
struct R {
/// @uml{association[]}
@@ -62,3 +57,247 @@ struct R {
```
## Generated UML diagrams
![t00030_class](./t00030_class.svg "PlantUML relationship decorators test case")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00030::A",
"id": "64769484767514424",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00030",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 7
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00030::B",
"id": "156923198106222307",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "B",
"namespace": "clanguml::t00030",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 9
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00030::C",
"id": "1651557398557662399",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "C",
"namespace": "clanguml::t00030",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 11
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00030::D",
"id": "1089781072752262158",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "D",
"namespace": "clanguml::t00030",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 13
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00030::E",
"id": "425964641881054607",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "E",
"namespace": "clanguml::t00030",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 15
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00030::R",
"id": "263468735940481091",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"comment": {
"formatted": "@uml{association[]}",
"raw": "/// @uml{association[]}"
},
"is_static": false,
"name": "aaa",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 19
},
"type": "clanguml::t00030::A"
},
{
"access": "public",
"comment": {
"formatted": "@uml{composition[0..1:1..*]}",
"raw": "/// @uml{composition[0..1:1..*]}"
},
"is_static": false,
"name": "bbb",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 22
},
"type": "std::vector<B>"
},
{
"access": "public",
"comment": {
"formatted": "@uml{aggregation[0..1:1..5]}",
"raw": "/// @uml{aggregation[0..1:1..5]}"
},
"is_static": false,
"name": "ccc",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 25
},
"type": "std::vector<C>"
},
{
"access": "public",
"comment": {
"formatted": "@uml{association[:1]}",
"raw": "/// @uml{association[:1]}"
},
"is_static": false,
"name": "ddd",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 28
},
"type": "clanguml::t00030::D"
},
{
"access": "public",
"comment": {
"formatted": "@uml{aggregation[:1]}",
"raw": "/// @uml{aggregation[:1]}"
},
"is_static": false,
"name": "eee",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 31
},
"type": "clanguml::t00030::E *"
}
],
"methods": [],
"name": "R",
"namespace": "clanguml::t00030",
"source_location": {
"file": "../../tests/t00030/t00030.cc",
"line": 17
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00030_class",
"relationships": [
{
"access": "public",
"destination": "64769484767514424",
"label": "aaa",
"source": "263468735940481091",
"type": "association"
},
{
"access": "public",
"destination": "156923198106222307",
"label": "bbb",
"multiplicity_destination": "1..*",
"multiplicity_source": "0..1",
"source": "263468735940481091",
"type": "composition"
},
{
"access": "public",
"destination": "1651557398557662399",
"label": "ccc",
"multiplicity_destination": "1..5",
"multiplicity_source": "0..1",
"source": "263468735940481091",
"type": "aggregation"
},
{
"access": "public",
"destination": "1089781072752262158",
"label": "ddd",
"multiplicity_destination": "1",
"source": "263468735940481091",
"type": "association"
},
{
"access": "public",
"destination": "425964641881054607",
"label": "eee",
"multiplicity_destination": "1",
"source": "263468735940481091",
"type": "aggregation"
}
],
"using_namespace": "clanguml::t00030"
}
```

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:366px;height:256px;" version="1.1" viewBox="0 0 366 256" width="366px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f3yymz1tkzvxy" width="300%" x="-1" y="-1">
<filter height="300%" id="fhniqzf6uw5ru" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,86 +9,86 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3yymz1tkzvxy)" height="48" id="C_0000064769484767514424" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fhniqzf6uw5ru)" height="48" id="C_0000064769484767514424" 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;"/>
<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>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L10" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L10" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3yymz1tkzvxy)" height="48" id="C_0000156923198106222307" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="84" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L9" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L9" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fhniqzf6uw5ru)" height="48" id="C_0000156923198106222307" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="84" y="197"/>
<ellipse cx="99" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M101.9688,218.6406 Q101.3906,218.9375 100.75,219.0781 Q100.1094,219.2344 99.4063,219.2344 Q96.9063,219.2344 95.5781,217.5938 Q94.2656,215.9375 94.2656,212.8125 Q94.2656,209.6875 95.5781,208.0313 Q96.9063,206.375 99.4063,206.375 Q100.1094,206.375 100.75,206.5313 Q101.4063,206.6875 101.9688,206.9844 L101.9688,209.7031 Q101.3438,209.125 100.75,208.8594 Q100.1563,208.5781 99.5313,208.5781 Q98.1875,208.5781 97.5,209.6563 Q96.8125,210.7188 96.8125,212.8125 Q96.8125,214.9063 97.5,215.9844 Q98.1875,217.0469 99.5313,217.0469 Q100.1563,217.0469 100.75,216.7813 Q101.3438,216.5 101.9688,215.9219 L101.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="113" y="217.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="85" x2="123" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="85" x2="123" y1="237" y2="237"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L13" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L13" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3yymz1tkzvxy)" height="48" id="C_0001651557398557662399" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="161" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L11" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L11" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fhniqzf6uw5ru)" height="48" id="C_0001651557398557662399" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="161" y="197"/>
<ellipse cx="176" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M178.9688,218.6406 Q178.3906,218.9375 177.75,219.0781 Q177.1094,219.2344 176.4063,219.2344 Q173.9063,219.2344 172.5781,217.5938 Q171.2656,215.9375 171.2656,212.8125 Q171.2656,209.6875 172.5781,208.0313 Q173.9063,206.375 176.4063,206.375 Q177.1094,206.375 177.75,206.5313 Q178.4063,206.6875 178.9688,206.9844 L178.9688,209.7031 Q178.3438,209.125 177.75,208.8594 Q177.1563,208.5781 176.5313,208.5781 Q175.1875,208.5781 174.5,209.6563 Q173.8125,210.7188 173.8125,212.8125 Q173.8125,214.9063 174.5,215.9844 Q175.1875,217.0469 176.5313,217.0469 Q177.1563,217.0469 177.75,216.7813 Q178.3438,216.5 178.9688,215.9219 L178.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="190" y="217.1543">C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="162" x2="200" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="162" x2="200" y1="237" y2="237"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L16" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L16" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3yymz1tkzvxy)" height="48" id="C_0001089781072752262158" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="236.5" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L13" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L13" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fhniqzf6uw5ru)" height="48" id="C_0001089781072752262158" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="236.5" y="197"/>
<ellipse cx="251.5" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M254.4688,218.6406 Q253.8906,218.9375 253.25,219.0781 Q252.6094,219.2344 251.9063,219.2344 Q249.4063,219.2344 248.0781,217.5938 Q246.7656,215.9375 246.7656,212.8125 Q246.7656,209.6875 248.0781,208.0313 Q249.4063,206.375 251.9063,206.375 Q252.6094,206.375 253.25,206.5313 Q253.9063,206.6875 254.4688,206.9844 L254.4688,209.7031 Q253.8438,209.125 253.25,208.8594 Q252.6563,208.5781 252.0313,208.5781 Q250.6875,208.5781 250,209.6563 Q249.3125,210.7188 249.3125,212.8125 Q249.3125,214.9063 250,215.9844 Q250.6875,217.0469 252.0313,217.0469 Q252.6563,217.0469 253.25,216.7813 Q253.8438,216.5 254.4688,215.9219 L254.4688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="265.5" y="217.1543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="237.5" x2="276.5" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="237.5" x2="276.5" y1="237" y2="237"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L19" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L19" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3yymz1tkzvxy)" height="48" id="C_0000425964641881054607" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="315" y="197"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L15" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L15" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fhniqzf6uw5ru)" height="48" id="C_0000425964641881054607" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="315" y="197"/>
<ellipse cx="330" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M332.9688,218.6406 Q332.3906,218.9375 331.75,219.0781 Q331.1094,219.2344 330.4063,219.2344 Q327.9063,219.2344 326.5781,217.5938 Q325.2656,215.9375 325.2656,212.8125 Q325.2656,209.6875 326.5781,208.0313 Q327.9063,206.375 330.4063,206.375 Q331.1094,206.375 331.75,206.5313 Q332.4063,206.6875 332.9688,206.9844 L332.9688,209.7031 Q332.3438,209.125 331.75,208.8594 Q331.1563,208.5781 330.5313,208.5781 Q329.1875,208.5781 328.5,209.6563 Q327.8125,210.7188 327.8125,212.8125 Q327.8125,214.9063 328.5,215.9844 Q329.1875,217.0469 330.5313,217.0469 Q331.1563,217.0469 331.75,216.7813 Q332.3438,216.5 332.9688,215.9219 L332.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="344" y="217.1543">E</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="316" x2="354" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="316" x2="354" y1="237" y2="237"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L22" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L22" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f3yymz1tkzvxy)" height="112.0234" id="C_0000263468735940481091" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="109" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L17" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L17" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fhniqzf6uw5ru)" height="112.0234" id="C_0000263468735940481091" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="109" y="8"/>
<ellipse cx="173.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M176.7188,29.6406 Q176.1406,29.9375 175.5,30.0781 Q174.8594,30.2344 174.1563,30.2344 Q171.6563,30.2344 170.3281,28.5938 Q169.0156,26.9375 169.0156,23.8125 Q169.0156,20.6875 170.3281,19.0313 Q171.6563,17.375 174.1563,17.375 Q174.8594,17.375 175.5,17.5313 Q176.1563,17.6875 176.7188,17.9844 L176.7188,20.7031 Q176.0938,20.125 175.5,19.8594 Q174.9063,19.5781 174.2813,19.5781 Q172.9375,19.5781 172.25,20.6563 Q171.5625,21.7188 171.5625,23.8125 Q171.5625,25.9063 172.25,26.9844 Q172.9375,28.0469 174.2813,28.0469 Q174.9063,28.0469 175.5,27.7813 Q176.0938,27.5 176.7188,26.9219 L176.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="194.25" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="110" x2="254" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L24" target="_top" title="@uml{association[]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L24" xlink:show="new" xlink:title="@uml{association[]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L19" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L19" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="115" y="46"/>
<ellipse cx="120" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L24" target="_top" title="@uml{association[]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L24" xlink:show="new" xlink:title="@uml{association[]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L19" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L19" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="129" y="54.2104">aaa : A</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L27" target="_top" title="@uml{composition[0..1:1..*]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L27" xlink:show="new" xlink:title="@uml{composition[0..1:1..*]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L22" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L22" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="115" y="58.8047"/>
<ellipse cx="120" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L27" target="_top" title="@uml{composition[0..1:1..*]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L27" xlink:show="new" xlink:title="@uml{composition[0..1:1..*]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L22" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L22" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="129" y="67.0151">bbb : std::vector&lt;B&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L30" target="_top" title="@uml{aggregation[0..1:1..5]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L30" xlink:show="new" xlink:title="@uml{aggregation[0..1:1..5]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L25" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L25" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="115" y="71.6094"/>
<ellipse cx="120" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L30" target="_top" title="@uml{aggregation[0..1:1..5]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L30" xlink:show="new" xlink:title="@uml{aggregation[0..1:1..5]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L25" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L25" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117" x="129" y="79.8198">ccc : std::vector&lt;C&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L33" target="_top" title="@uml{association[:1]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L33" xlink:show="new" xlink:title="@uml{association[:1]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L28" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L28" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="115" y="84.4141"/>
<ellipse cx="120" cy="89.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L33" target="_top" title="@uml{association[:1]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L33" xlink:show="new" xlink:title="@uml{association[:1]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L28" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L28" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="41" x="129" y="92.6245">ddd : D</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L36" target="_top" title="@uml{aggregation[:1]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L36" xlink:show="new" xlink:title="@uml{aggregation[:1]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L31" target="_top" title="eee" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L31" xlink:show="new" xlink:title="eee" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="115" y="97.2188"/>
<ellipse cx="120" cy="102.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L36" target="_top" title="@uml{aggregation[:1]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00030/t00030.cc#L36" xlink:show="new" xlink:title="@uml{aggregation[:1]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L31" target="_top" title="eee" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00030/t00030.cc#L31" xlink:show="new" xlink:title="eee" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="50" x="129" y="105.4292">eee : E *</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="110" x2="254" y1="112.0234" y2="112.0234"/>

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -25,8 +25,7 @@ namespace clanguml {
namespace t00031 {
/// @uml{style[#back:lightgreen|yellow;header:blue/red]}
class A {
};
class A { };
/// @uml{style[#line.dotted:blue]}
enum B { one, two, three };
@@ -36,8 +35,7 @@ template <typename T> class C {
T ttt;
};
class D {
};
class D { };
struct R {
/// @uml{style[#red,dashed,thickness=2]}
@@ -60,3 +58,256 @@ struct R {
```
## Generated UML diagrams
![t00031_class](./t00031_class.svg "PlantUML style decorator test case")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"comment": {
"formatted": "@uml{style[#back:lightgreen|yellow;header:blue/red]}",
"raw": "/// @uml{style[#back:lightgreen|yellow;header:blue/red]}"
},
"display_name": "clanguml::t00031::A",
"id": "847775539502907247",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00031",
"source_location": {
"file": "../../tests/t00031/t00031.cc",
"line": 8
},
"template_parameters": [],
"type": "class"
},
{
"comment": {
"formatted": "@uml{style[#line.dotted:blue]}",
"raw": "/// @uml{style[#line.dotted:blue]}"
},
"constants": [
"one",
"two",
"three"
],
"display_name": "clanguml::t00031::B",
"id": "1441796358326382179",
"is_nested": false,
"name": "B",
"namespace": "clanguml::t00031",
"source_location": {
"file": "../../tests/t00031/t00031.cc",
"line": 11
},
"type": "enum"
},
{
"bases": [],
"comment": {
"formatted": "@uml{style[#pink;line:red;line.bold;text:red]}",
"raw": "/// @uml{style[#pink;line:red;line.bold;text:red]}"
},
"display_name": "clanguml::t00031::C<T>",
"id": "116209144733282955",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [
{
"access": "private",
"is_static": false,
"name": "ttt",
"source_location": {
"file": "../../tests/t00031/t00031.cc",
"line": 15
},
"type": "T"
}
],
"methods": [],
"name": "C",
"namespace": "clanguml::t00031",
"source_location": {
"file": "../../tests/t00031/t00031.cc",
"line": 14
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00031::D",
"id": "2266534344475505157",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "D",
"namespace": "clanguml::t00031",
"source_location": {
"file": "../../tests/t00031/t00031.cc",
"line": 18
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00031::C<int>",
"id": "208700529175860645",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "C",
"namespace": "clanguml::t00031",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "int"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00031::R",
"id": "484712092364868032",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"comment": {
"formatted": "@uml{style[#red,dashed,thickness=2]}",
"raw": "/// @uml{style[#red,dashed,thickness=2]}"
},
"is_static": false,
"name": "aaa",
"source_location": {
"file": "../../tests/t00031/t00031.cc",
"line": 22
},
"type": "clanguml::t00031::A *"
},
{
"access": "public",
"comment": {
"formatted": "@uml{composition}\n@uml{style[#green,dashed,thickness=4]}",
"raw": "/// @uml{composition}\n /// @uml{style[#green,dashed,thickness=4]}"
},
"is_static": false,
"name": "bbb",
"source_location": {
"file": "../../tests/t00031/t00031.cc",
"line": 26
},
"type": "std::vector<B>"
},
{
"access": "public",
"comment": {
"formatted": "@uml{style[#blue,dotted,thickness=8]}",
"raw": "/// @uml{style[#blue,dotted,thickness=8]}"
},
"is_static": false,
"name": "ccc",
"source_location": {
"file": "../../tests/t00031/t00031.cc",
"line": 29
},
"type": "C<int>"
},
{
"access": "public",
"comment": {
"formatted": "@uml{style[#blue,plain,thickness=16]}",
"raw": "/// @uml{style[#blue,plain,thickness=16]}"
},
"is_static": false,
"name": "ddd",
"source_location": {
"file": "../../tests/t00031/t00031.cc",
"line": 32
},
"type": "clanguml::t00031::D *"
}
],
"methods": [],
"name": "R",
"namespace": "clanguml::t00031",
"source_location": {
"file": "../../tests/t00031/t00031.cc",
"line": 20
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00031_class",
"relationships": [
{
"access": "public",
"destination": "116209144733282955",
"source": "208700529175860645",
"type": "instantiation"
},
{
"access": "public",
"destination": "847775539502907247",
"label": "aaa",
"source": "484712092364868032",
"type": "association"
},
{
"access": "public",
"destination": "1441796358326382179",
"label": "bbb",
"source": "484712092364868032",
"type": "composition"
},
{
"access": "public",
"destination": "208700529175860645",
"label": "ccc",
"source": "484712092364868032",
"type": "aggregation"
},
{
"access": "public",
"destination": "2266534344475505157",
"label": "ddd",
"source": "484712092364868032",
"type": "association"
}
],
"using_namespace": "clanguml::t00031"
}
```

View File

@@ -1,33 +1,33 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="402px" preserveAspectRatio="none" style="width:312px;height:402px;" version="1.1" viewBox="0 0 312 402" width="312px" zoomAndPan="magnify">
<defs>
<linearGradient id="gm7dyphxdseq0" x1="0%" x2="100%" y1="50%" y2="50%">
<linearGradient id="g41u00i2edeuf0" x1="0%" x2="100%" y1="50%" y2="50%">
<stop offset="0%" stop-color="#90EE90"/>
<stop offset="100%" stop-color="#FFFF00"/>
</linearGradient>
<filter height="300%" id="fm7dyphxdseq" width="300%" x="-1" y="-1">
<filter height="300%" id="f41u00i2edeuf" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
<feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/>
</filter>
<linearGradient id="gm7dyphxdseq1" x1="0%" x2="100%" y1="0%" y2="100%">
<linearGradient id="g41u00i2edeuf1" x1="0%" x2="100%" y1="0%" y2="100%">
<stop offset="0%" stop-color="#0000FF"/>
<stop offset="100%" stop-color="#FF0000"/>
</linearGradient>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L8" target="_top" title="@uml{style[#back:lightgreen|yellow;header:blue/red]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L8" xlink:show="new" xlink:title="@uml{style[#back:lightgreen|yellow;header:blue/red]}" xlink:type="simple">
<rect fill="url(#gm7dyphxdseq0)" filter="url(#fm7dyphxdseq)" height="48" id="C_0000847775539502907247" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="203"/>
<rect fill="url(#gm7dyphxdseq1)" height="32" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="203"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L8" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L8" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="url(#g41u00i2edeuf0)" filter="url(#f41u00i2edeuf)" height="48" id="C_0000847775539502907247" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="203"/>
<rect fill="url(#g41u00i2edeuf1)" height="32" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="6" y="203"/>
<ellipse cx="21" cy="219" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,224.6406 Q23.3906,224.9375 22.75,225.0781 Q22.1094,225.2344 21.4063,225.2344 Q18.9063,225.2344 17.5781,223.5938 Q16.2656,221.9375 16.2656,218.8125 Q16.2656,215.6875 17.5781,214.0313 Q18.9063,212.375 21.4063,212.375 Q22.1094,212.375 22.75,212.5313 Q23.4063,212.6875 23.9688,212.9844 L23.9688,215.7031 Q23.3438,215.125 22.75,214.8594 Q22.1563,214.5781 21.5313,214.5781 Q20.1875,214.5781 19.5,215.6563 Q18.8125,216.7188 18.8125,218.8125 Q18.8125,220.9063 19.5,221.9844 Q20.1875,223.0469 21.5313,223.0469 Q22.1563,223.0469 22.75,222.7813 Q23.3438,222.5 23.9688,221.9219 L23.9688,224.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="223.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="235" y2="235"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="45" y1="243" y2="243"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L12" target="_top" title="@uml{style[#line.dotted:blue]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L12" xlink:show="new" xlink:title="@uml{style[#line.dotted:blue]}" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fm7dyphxdseq)" height="86.4141" id="C_0001441796358326382179" style="stroke: #0000FF; stroke-width: 1.0; stroke-dasharray: 1.0,3.0;" width="42" x="83" y="184"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L11" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L11" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f41u00i2edeuf)" height="86.4141" id="C_0001441796358326382179" style="stroke: #0000FF; stroke-width: 1.0; stroke-dasharray: 1.0,3.0;" width="42" x="83" y="184"/>
<ellipse cx="98.9" cy="200" fill="#EB937F" rx="11" ry="11" style="stroke: #0000FF; stroke-width: 1.0;"/>
<path d="M103.0094,206 L95.2906,206 L95.2906,193.6094 L103.0094,193.6094 L103.0094,195.7656 L97.7438,195.7656 L97.7438,198.4375 L102.5094,198.4375 L102.5094,200.5938 L97.7438,200.5938 L97.7438,203.8438 L103.0094,203.8438 L103.0094,206 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="113.1" y="204.1543">B</text>
@@ -37,8 +37,8 @@
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="30" x="89" y="255.8198">three</text>
<line style="stroke: #0000FF; stroke-width: 1.0; stroke-dasharray: 1.0,3.0;" x1="84" x2="124" y1="262.4141" y2="262.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L15" target="_top" title="@uml{style[#pink;line:red;line.bold;text:red]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L15" xlink:show="new" xlink:title="@uml{style[#pink;line:red;line.bold;text:red]}" xlink:type="simple">
<rect fill="#FFC0CB" filter="url(#fm7dyphxdseq)" height="60.8047" id="C_0000116209144733282955" style="stroke: #FF0000; stroke-width: 2.0;" width="57" x="239.5" y="331"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L14" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L14" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FFC0CB" filter="url(#f41u00i2edeuf)" height="60.8047" id="C_0000116209144733282955" style="stroke: #FF0000; stroke-width: 2.0;" width="57" x="239.5" y="331"/>
<rect fill="#FFC0CB" height="32" style="stroke: #FF0000; stroke-width: 2.0;" width="57" x="239.5" y="331"/>
<ellipse cx="257.2" cy="347" fill="#ADD1B2" rx="11" ry="11" style="stroke: #FF0000; stroke-width: 1.0;"/>
<path d="M260.1688,352.6406 Q259.5906,352.9375 258.95,353.0781 Q258.3094,353.2344 257.6063,353.2344 Q255.1063,353.2344 253.7781,351.5938 Q252.4656,349.9375 252.4656,346.8125 Q252.4656,343.6875 253.7781,342.0313 Q255.1063,340.375 257.6063,340.375 Q258.3094,340.375 258.95,340.5313 Q259.6063,340.6875 260.1688,340.9844 L260.1688,343.7031 Q259.5438,343.125 258.95,342.8594 Q258.3563,342.5781 257.7313,342.5781 Q256.3875,342.5781 255.7,343.6563 Q255.0125,344.7188 255.0125,346.8125 Q255.0125,348.9063 255.7,349.9844 Q256.3875,351.0469 257.7313,351.0469 Q258.3563,351.0469 258.95,350.7813 Q259.5438,350.5 260.1688,349.9219 L260.1688,352.6406 Z "/>
@@ -47,23 +47,23 @@
<text fill="#FF0000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="291.5" y="340.1387">T</text>
<line style="stroke: #FF0000; stroke-width: 2.0;" x1="240.5" x2="295.5" y1="363" y2="363"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L16" target="_top" title="ttt" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L16" xlink:show="new" xlink:title="ttt" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L15" target="_top" title="ttt" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L15" xlink:show="new" xlink:title="ttt" xlink:type="simple">
<rect fill="#FFC0CB" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="245.5" y="369"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="247.5" y="371"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L16" target="_top" title="ttt" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L16" xlink:show="new" xlink:title="ttt" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L15" target="_top" title="ttt" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L15" xlink:show="new" xlink:title="ttt" xlink:type="simple">
<text fill="#FF0000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="31" x="259.5" y="377.2104">ttt : T</text>
</a>
<line style="stroke: #FF0000; stroke-width: 2.0;" x1="240.5" x2="295.5" y1="383.8047" y2="383.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L19" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L19" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fm7dyphxdseq)" height="48" id="C_0002266534344475505157" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="161.5" y="203"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L18" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L18" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f41u00i2edeuf)" height="48" id="C_0002266534344475505157" style="stroke: #A80036; stroke-width: 1.5;" width="41" x="161.5" y="203"/>
<ellipse cx="176.5" cy="219" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M179.4688,224.6406 Q178.8906,224.9375 178.25,225.0781 Q177.6094,225.2344 176.9063,225.2344 Q174.4063,225.2344 173.0781,223.5938 Q171.7656,221.9375 171.7656,218.8125 Q171.7656,215.6875 173.0781,214.0313 Q174.4063,212.375 176.9063,212.375 Q177.6094,212.375 178.25,212.5313 Q178.9063,212.6875 179.4688,212.9844 L179.4688,215.7031 Q178.8438,215.125 178.25,214.8594 Q177.6563,214.5781 177.0313,214.5781 Q175.6875,214.5781 175,215.6563 Q174.3125,216.7188 174.3125,218.8125 Q174.3125,220.9063 175,221.9844 Q175.6875,223.0469 177.0313,223.0469 Q177.6563,223.0469 178.25,222.7813 Q178.8438,222.5 179.4688,221.9219 L179.4688,224.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="190.5" y="223.1543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="162.5" x2="201.5" y1="235" y2="235"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="162.5" x2="201.5" y1="243" y2="243"/>
</a>
<rect fill="#FEFECE" filter="url(#fm7dyphxdseq)" height="48" id="C_0000208700529175860645" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="238" y="203"/>
<rect fill="#FEFECE" filter="url(#f41u00i2edeuf)" height="48" id="C_0000208700529175860645" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="238" y="203"/>
<ellipse cx="253" cy="219" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M255.9688,224.6406 Q255.3906,224.9375 254.75,225.0781 Q254.1094,225.2344 253.4063,225.2344 Q250.9063,225.2344 249.5781,223.5938 Q248.2656,221.9375 248.2656,218.8125 Q248.2656,215.6875 249.5781,214.0313 Q250.9063,212.375 253.4063,212.375 Q254.1094,212.375 254.75,212.5313 Q255.4063,212.6875 255.9688,212.9844 L255.9688,215.7031 Q255.3438,215.125 254.75,214.8594 Q254.1563,214.5781 253.5313,214.5781 Q252.1875,214.5781 251.5,215.6563 Q250.8125,216.7188 250.8125,218.8125 Q250.8125,220.9063 251.5,221.9844 Q252.1875,223.0469 253.5313,223.0469 Q254.1563,223.0469 254.75,222.7813 Q255.3438,222.5 255.9688,221.9219 L255.9688,224.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="267" y="223.1543">C</text>
@@ -71,39 +71,39 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="284" y="212.1387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="239" x2="297" y1="235" y2="235"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="239" x2="297" y1="243" y2="243"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L22" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L22" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fm7dyphxdseq)" height="99.2188" id="C_0000484712092364868032" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="70" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L20" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L20" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f41u00i2edeuf)" height="99.2188" id="C_0000484712092364868032" style="stroke: #A80036; stroke-width: 1.5;" width="146" x="70" y="8"/>
<ellipse cx="134.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M137.7188,29.6406 Q137.1406,29.9375 136.5,30.0781 Q135.8594,30.2344 135.1563,30.2344 Q132.6563,30.2344 131.3281,28.5938 Q130.0156,26.9375 130.0156,23.8125 Q130.0156,20.6875 131.3281,19.0313 Q132.6563,17.375 135.1563,17.375 Q135.8594,17.375 136.5,17.5313 Q137.1563,17.6875 137.7188,17.9844 L137.7188,20.7031 Q137.0938,20.125 136.5,19.8594 Q135.9063,19.5781 135.2813,19.5781 Q133.9375,19.5781 133.25,20.6563 Q132.5625,21.7188 132.5625,23.8125 Q132.5625,25.9063 133.25,26.9844 Q133.9375,28.0469 135.2813,28.0469 Q135.9063,28.0469 136.5,27.7813 Q137.0938,27.5 137.7188,26.9219 L137.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="155.25" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="215" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L24" target="_top" title="@uml{style[#red,dashed,thickness=2]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L24" xlink:show="new" xlink:title="@uml{style[#red,dashed,thickness=2]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L22" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L22" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="76" y="46"/>
<ellipse cx="81" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L24" target="_top" title="@uml{style[#red,dashed,thickness=2]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L24" xlink:show="new" xlink:title="@uml{style[#red,dashed,thickness=2]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L22" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L22" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="50" x="90" y="54.2104">aaa : A *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L28" target="_top" title="@uml{composition} @uml{style[#green,dashed,thickness=4]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L28" xlink:show="new" xlink:title="@uml{composition} @uml{style[#green,dashed,thickness=4]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L26" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L26" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="76" y="58.8047"/>
<ellipse cx="81" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L28" target="_top" title="@uml{composition} @uml{style[#green,dashed,thickness=4]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L28" xlink:show="new" xlink:title="@uml{composition} @uml{style[#green,dashed,thickness=4]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L26" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L26" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="120" x="90" y="67.0151">bbb : std::vector&lt;B&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L31" target="_top" title="@uml{style[#blue,dotted,thickness=8]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L31" xlink:show="new" xlink:title="@uml{style[#blue,dotted,thickness=8]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L29" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L29" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="76" y="71.6094"/>
<ellipse cx="81" cy="76.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L31" target="_top" title="@uml{style[#blue,dotted,thickness=8]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L31" xlink:show="new" xlink:title="@uml{style[#blue,dotted,thickness=8]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L29" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L29" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="90" y="79.8198">ccc : C&lt;int&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L34" target="_top" title="@uml{style[#blue,plain,thickness=16]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L34" xlink:show="new" xlink:title="@uml{style[#blue,plain,thickness=16]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L32" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L32" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="76" y="84.4141"/>
<ellipse cx="81" cy="89.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L34" target="_top" title="@uml{style[#blue,plain,thickness=16]}" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00031/t00031.cc#L34" xlink:show="new" xlink:title="@uml{style[#blue,plain,thickness=16]}" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L32" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00031/t00031.cc#L32" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="51" x="90" y="92.6245">ddd : D *</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="215" y1="99.2188" y2="99.2188"/>

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -24,11 +24,9 @@ File t00032.cc
namespace clanguml {
namespace t00032 {
struct Base {
};
struct Base { };
struct TBase {
};
struct TBase { };
struct A {
void operator()() { }
@@ -60,3 +58,381 @@ struct R {
```
## Generated UML diagrams
![t00032_class](./t00032_class.svg "Class template with template base classes test case")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00032::Base",
"id": "1619396229227632210",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Base",
"namespace": "clanguml::t00032",
"source_location": {
"file": "../../tests/t00032/t00032.cc",
"line": 7
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00032::TBase",
"id": "543776954602127752",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "TBase",
"namespace": "clanguml::t00032",
"source_location": {
"file": "../../tests/t00032/t00032.cc",
"line": 9
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00032::A",
"id": "687909853333071234",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "operator()",
"parameters": [],
"type": "void"
}
],
"name": "A",
"namespace": "clanguml::t00032",
"source_location": {
"file": "../../tests/t00032/t00032.cc",
"line": 11
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00032::B",
"id": "737235057776029746",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "operator()",
"parameters": [],
"type": "void"
}
],
"name": "B",
"namespace": "clanguml::t00032",
"source_location": {
"file": "../../tests/t00032/t00032.cc",
"line": 15
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00032::C",
"id": "1497964256865073382",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": false,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "operator()",
"parameters": [],
"type": "void"
}
],
"name": "C",
"namespace": "clanguml::t00032",
"source_location": {
"file": "../../tests/t00032/t00032.cc",
"line": 19
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "1619396229227632210",
"is_virtual": false,
"name": "clanguml::t00032::Base"
}
],
"display_name": "clanguml::t00032::Overload<T,L,Ts...>",
"id": "1463422997970691679",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "counter",
"source_location": {
"file": "../../tests/t00032/t00032.cc",
"line": 26
},
"type": "L"
}
],
"methods": [],
"name": "Overload",
"namespace": "clanguml::t00032",
"source_location": {
"file": "../../tests/t00032/t00032.cc",
"line": 24
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
},
{
"is_variadic": false,
"kind": "template_type",
"name": "L",
"template_parameters": []
},
{
"is_variadic": true,
"kind": "template_type",
"name": "Ts...",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "543776954602127752",
"is_virtual": false,
"name": "clanguml::t00032::TBase"
},
{
"access": "public",
"id": "687909853333071234",
"is_virtual": false,
"name": "clanguml::t00032::A"
},
{
"access": "public",
"id": "737235057776029746",
"is_virtual": false,
"name": "clanguml::t00032::B"
},
{
"access": "public",
"id": "1497964256865073382",
"is_virtual": false,
"name": "clanguml::t00032::C"
}
],
"display_name": "clanguml::t00032::Overload<clanguml::t00032::TBase,int,clanguml::t00032::A,clanguml::t00032::B,clanguml::t00032::C>",
"id": "1706455047176879286",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Overload",
"namespace": "clanguml::t00032",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "clanguml::t00032::TBase"
},
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "int"
},
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "clanguml::t00032::A"
},
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "clanguml::t00032::B"
},
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "clanguml::t00032::C"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00032::R",
"id": "85539867332573320",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "overload",
"source_location": {
"file": "../../tests/t00032/t00032.cc",
"line": 32
},
"type": "Overload<clanguml::t00032::TBase,int,clanguml::t00032::A,clanguml::t00032::B,clanguml::t00032::C>"
}
],
"methods": [],
"name": "R",
"namespace": "clanguml::t00032",
"source_location": {
"file": "../../tests/t00032/t00032.cc",
"line": 31
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00032_class",
"relationships": [
{
"access": "public",
"destination": "1619396229227632210",
"source": "1463422997970691679",
"type": "extension"
},
{
"access": "public",
"destination": "543776954602127752",
"source": "1706455047176879286",
"type": "dependency"
},
{
"access": "public",
"destination": "687909853333071234",
"source": "1706455047176879286",
"type": "dependency"
},
{
"access": "public",
"destination": "737235057776029746",
"source": "1706455047176879286",
"type": "dependency"
},
{
"access": "public",
"destination": "1497964256865073382",
"source": "1706455047176879286",
"type": "dependency"
},
{
"access": "public",
"destination": "1463422997970691679",
"source": "1706455047176879286",
"type": "instantiation"
},
{
"access": "public",
"destination": "543776954602127752",
"source": "1706455047176879286",
"type": "extension"
},
{
"access": "public",
"destination": "687909853333071234",
"source": "1706455047176879286",
"type": "extension"
},
{
"access": "public",
"destination": "737235057776029746",
"source": "1706455047176879286",
"type": "extension"
},
{
"access": "public",
"destination": "1497964256865073382",
"source": "1706455047176879286",
"type": "extension"
},
{
"access": "public",
"destination": "1706455047176879286",
"label": "overload",
"source": "85539867332573320",
"type": "aggregation"
}
],
"using_namespace": "clanguml::t00032"
}
```

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="326px" preserveAspectRatio="none" style="width:743px;height:326px;" version="1.1" viewBox="0 0 743 326" width="743px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="ft0yuq9oay1b1" width="300%" x="-1" y="-1">
<filter height="300%" id="f1j3jg342sxs0x" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,24 +9,24 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L7" target="_top" title="Base" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L7" xlink:show="new" xlink:title="Base" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ft0yuq9oay1b1)" height="48" id="C_0001619396229227632210" style="stroke: #A80036; stroke-width: 1.5;" width="63" x="43.5" y="146"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L7" target="_top" title="Base" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L7" xlink:show="new" xlink:title="Base" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1j3jg342sxs0x)" height="48" id="C_0001619396229227632210" style="stroke: #A80036; stroke-width: 1.5;" width="63" x="43.5" y="146"/>
<ellipse cx="58.5" cy="162" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M61.4688,167.6406 Q60.8906,167.9375 60.25,168.0781 Q59.6094,168.2344 58.9063,168.2344 Q56.4063,168.2344 55.0781,166.5938 Q53.7656,164.9375 53.7656,161.8125 Q53.7656,158.6875 55.0781,157.0313 Q56.4063,155.375 58.9063,155.375 Q59.6094,155.375 60.25,155.5313 Q60.9063,155.6875 61.4688,155.9844 L61.4688,158.7031 Q60.8438,158.125 60.25,157.8594 Q59.6563,157.5781 59.0313,157.5781 Q57.6875,157.5781 57,158.6563 Q56.3125,159.7188 56.3125,161.8125 Q56.3125,163.9063 57,164.9844 Q57.6875,166.0469 59.0313,166.0469 Q59.6563,166.0469 60.25,165.7813 Q60.8438,165.5 61.4688,164.9219 L61.4688,167.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="31" x="72.5" y="166.1543">Base</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="44.5" x2="105.5" y1="178" y2="178"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="44.5" x2="105.5" y1="186" y2="186"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L10" target="_top" title="TBase" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L10" xlink:show="new" xlink:title="TBase" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ft0yuq9oay1b1)" height="48" id="C_0000543776954602127752" style="stroke: #A80036; stroke-width: 1.5;" width="70" x="179" y="261.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L9" target="_top" title="TBase" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L9" xlink:show="new" xlink:title="TBase" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1j3jg342sxs0x)" height="48" id="C_0000543776954602127752" style="stroke: #A80036; stroke-width: 1.5;" width="70" x="179" y="261.5"/>
<ellipse cx="194" cy="277.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M196.9688,283.1406 Q196.3906,283.4375 195.75,283.5781 Q195.1094,283.7344 194.4063,283.7344 Q191.9063,283.7344 190.5781,282.0938 Q189.2656,280.4375 189.2656,277.3125 Q189.2656,274.1875 190.5781,272.5313 Q191.9063,270.875 194.4063,270.875 Q195.1094,270.875 195.75,271.0313 Q196.4063,271.1875 196.9688,271.4844 L196.9688,274.2031 Q196.3438,273.625 195.75,273.3594 Q195.1563,273.0781 194.5313,273.0781 Q193.1875,273.0781 192.5,274.1563 Q191.8125,275.2188 191.8125,277.3125 Q191.8125,279.4063 192.5,280.4844 Q193.1875,281.5469 194.5313,281.5469 Q195.1563,281.5469 195.75,281.2813 Q196.3438,281 196.9688,280.4219 L196.9688,283.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="38" x="208" y="281.6543">TBase</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="180" x2="248" y1="293.5" y2="293.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="180" x2="248" y1="301.5" y2="301.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L13" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L13" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ft0yuq9oay1b1)" height="60.8047" id="C_0000687909853333071234" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="284" y="255"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1j3jg342sxs0x)" height="60.8047" id="C_0000687909853333071234" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="284" y="255"/>
<ellipse cx="338.75" cy="271" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M341.7188,276.6406 Q341.1406,276.9375 340.5,277.0781 Q339.8594,277.2344 339.1563,277.2344 Q336.6563,277.2344 335.3281,275.5938 Q334.0156,273.9375 334.0156,270.8125 Q334.0156,267.6875 335.3281,266.0313 Q336.6563,264.375 339.1563,264.375 Q339.8594,264.375 340.5,264.5313 Q341.1563,264.6875 341.7188,264.9844 L341.7188,267.7031 Q341.0938,267.125 340.5,266.8594 Q339.9063,266.5781 339.2813,266.5781 Q337.9375,266.5781 337.25,267.6563 Q336.5625,268.7188 336.5625,270.8125 Q336.5625,272.9063 337.25,273.9844 Q337.9375,275.0469 339.2813,275.0469 Q339.9063,275.0469 340.5,274.7813 Q341.0938,274.5 341.7188,273.9219 L341.7188,276.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="359.25" y="275.1543">A</text>
@@ -35,8 +35,8 @@
<ellipse cx="295" cy="306" 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="100" x="304" y="309.2104">operator()() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L17" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L17" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ft0yuq9oay1b1)" height="60.8047" id="C_0000737235057776029746" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="445" y="255"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L15" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L15" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1j3jg342sxs0x)" height="60.8047" id="C_0000737235057776029746" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="445" y="255"/>
<ellipse cx="499.75" cy="271" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M502.7188,276.6406 Q502.1406,276.9375 501.5,277.0781 Q500.8594,277.2344 500.1563,277.2344 Q497.6563,277.2344 496.3281,275.5938 Q495.0156,273.9375 495.0156,270.8125 Q495.0156,267.6875 496.3281,266.0313 Q497.6563,264.375 500.1563,264.375 Q500.8594,264.375 501.5,264.5313 Q502.1563,264.6875 502.7188,264.9844 L502.7188,267.7031 Q502.0938,267.125 501.5,266.8594 Q500.9063,266.5781 500.2813,266.5781 Q498.9375,266.5781 498.25,267.6563 Q497.5625,268.7188 497.5625,270.8125 Q497.5625,272.9063 498.25,273.9844 Q498.9375,275.0469 500.2813,275.0469 Q500.9063,275.0469 501.5,274.7813 Q502.0938,274.5 502.7188,273.9219 L502.7188,276.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="520.25" y="275.1543">B</text>
@@ -45,8 +45,8 @@
<ellipse cx="456" cy="306" 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="100" x="465" y="309.2104">operator()() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L21" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L21" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ft0yuq9oay1b1)" height="60.8047" id="C_0001497964256865073382" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="606" y="255"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L19" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L19" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1j3jg342sxs0x)" height="60.8047" id="C_0001497964256865073382" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="606" y="255"/>
<ellipse cx="660.75" cy="271" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M663.7188,276.6406 Q663.1406,276.9375 662.5,277.0781 Q661.8594,277.2344 661.1563,277.2344 Q658.6563,277.2344 657.3281,275.5938 Q656.0156,273.9375 656.0156,270.8125 Q656.0156,267.6875 657.3281,266.0313 Q658.6563,264.375 661.1563,264.375 Q661.8594,264.375 662.5,264.5313 Q663.1563,264.6875 663.7188,264.9844 L663.7188,267.7031 Q663.0938,267.125 662.5,266.8594 Q661.9063,266.5781 661.2813,266.5781 Q659.9375,266.5781 659.25,267.6563 Q658.5625,268.7188 658.5625,270.8125 Q658.5625,272.9063 659.25,273.9844 Q659.9375,275.0469 661.2813,275.0469 Q661.9063,275.0469 662.5,274.7813 Q663.0938,274.5 663.7188,273.9219 L663.7188,276.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="681.25" y="275.1543">C</text>
@@ -55,8 +55,8 @@
<ellipse cx="617" cy="306" 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="100" x="626" y="309.2104">operator()() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L26" target="_top" title="Overload" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L26" xlink:show="new" xlink:title="Overload" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ft0yuq9oay1b1)" height="60.8047" id="C_0001463422997970691679" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="6" y="255"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L24" target="_top" title="Overload" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L24" xlink:show="new" xlink:title="Overload" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1j3jg342sxs0x)" height="60.8047" id="C_0001463422997970691679" style="stroke: #A80036; stroke-width: 1.5;" width="138" x="6" y="255"/>
<ellipse cx="21" cy="271" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,276.6406 Q23.3906,276.9375 22.75,277.0781 Q22.1094,277.2344 21.4063,277.2344 Q18.9063,277.2344 17.5781,275.5938 Q16.2656,273.9375 16.2656,270.8125 Q16.2656,267.6875 17.5781,266.0313 Q18.9063,264.375 21.4063,264.375 Q22.1094,264.375 22.75,264.5313 Q23.4063,264.6875 23.9688,264.9844 L23.9688,267.7031 Q23.3438,267.125 22.75,266.8594 Q22.1563,266.5781 21.5313,266.5781 Q20.1875,266.5781 19.5,267.6563 Q18.8125,268.7188 18.8125,270.8125 Q18.8125,272.9063 19.5,273.9844 Q20.1875,275.0469 21.5313,275.0469 Q22.1563,275.0469 22.75,274.7813 Q23.3438,274.5 23.9688,273.9219 L23.9688,276.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="35" y="275.1543">Overload</text>
@@ -64,15 +64,15 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="47" x="99" y="264.1387">T,L,Ts...</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="143" y1="287" y2="287"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L28" target="_top" title="counter" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L28" xlink:show="new" xlink:title="counter" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L26" target="_top" title="counter" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L26" xlink:show="new" xlink:title="counter" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="293"/>
<ellipse cx="17" cy="298" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L28" target="_top" title="counter" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L28" xlink:show="new" xlink:title="counter" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L26" target="_top" title="counter" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L26" xlink:show="new" xlink:title="counter" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="26" y="301.2104">counter : L</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="143" y1="307.8047" y2="307.8047"/>
<rect fill="#FEFECE" filter="url(#ft0yuq9oay1b1)" height="48" id="C_0001706455047176879286" style="stroke: #A80036; stroke-width: 1.5;" width="184" x="255" y="146"/>
<rect fill="#FEFECE" filter="url(#f1j3jg342sxs0x)" height="48" id="C_0001706455047176879286" style="stroke: #A80036; stroke-width: 1.5;" width="184" x="255" y="146"/>
<ellipse cx="270" cy="162" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M272.9688,167.6406 Q272.3906,167.9375 271.75,168.0781 Q271.1094,168.2344 270.4063,168.2344 Q267.9063,168.2344 266.5781,166.5938 Q265.2656,164.9375 265.2656,161.8125 Q265.2656,158.6875 266.5781,157.0313 Q267.9063,155.375 270.4063,155.375 Q271.1094,155.375 271.75,155.5313 Q272.4063,155.6875 272.9688,155.9844 L272.9688,158.7031 Q272.3438,158.125 271.75,157.8594 Q271.1563,157.5781 270.5313,157.5781 Q269.1875,157.5781 268.5,158.6563 Q267.8125,159.7188 267.8125,161.8125 Q267.8125,163.9063 268.5,164.9844 Q269.1875,166.0469 270.5313,166.0469 Q271.1563,166.0469 271.75,165.7813 Q272.3438,165.5 272.9688,164.9219 L272.9688,167.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="55" x="284" y="166.1543">Overload</text>
@@ -80,18 +80,18 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="93" x="348" y="155.1387">TBase,int,A,B,C</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="256" x2="438" y1="178" y2="178"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="256" x2="438" y1="186" y2="186"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L33" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L33" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ft0yuq9oay1b1)" height="60.8047" id="C_0000085539867332573320" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="224.5" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L31" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L31" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1j3jg342sxs0x)" height="60.8047" id="C_0000085539867332573320" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="224.5" y="8"/>
<ellipse cx="338.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M341.7188,29.6406 Q341.1406,29.9375 340.5,30.0781 Q339.8594,30.2344 339.1563,30.2344 Q336.6563,30.2344 335.3281,28.5938 Q334.0156,26.9375 334.0156,23.8125 Q334.0156,20.6875 335.3281,19.0313 Q336.6563,17.375 339.1563,17.375 Q339.8594,17.375 340.5,17.5313 Q341.1563,17.6875 341.7188,17.9844 L341.7188,20.7031 Q341.0938,20.125 340.5,19.8594 Q339.9063,19.5781 339.2813,19.5781 Q337.9375,19.5781 337.25,20.6563 Q336.5625,21.7188 336.5625,23.8125 Q336.5625,25.9063 337.25,26.9844 Q337.9375,28.0469 339.2813,28.0469 Q339.9063,28.0469 340.5,27.7813 Q341.0938,27.5 341.7188,26.9219 L341.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="359.25" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="225.5" x2="468.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L34" target="_top" title="overload" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L34" xlink:show="new" xlink:title="overload" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L32" target="_top" title="overload" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L32" xlink:show="new" xlink:title="overload" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="230.5" y="46"/>
<ellipse cx="235.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L34" target="_top" title="overload" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00032/t00032.cc#L34" xlink:show="new" xlink:title="overload" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L32" target="_top" title="overload" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00032/t00032.cc#L32" xlink:show="new" xlink:title="overload" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="219" x="244.5" y="54.2104">overload : Overload&lt;TBase,int,A,B,C&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="225.5" x2="468.5" y1="60.8047" y2="60.8047"/>

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -50,3 +50,338 @@ struct R {
```
## Generated UML diagrams
![t00033_class](./t00033_class.svg "Nested template instantiation dependency test case")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00033::A<T>",
"id": "2036031998980633871",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "aaa",
"source_location": {
"file": "../../tests/t00033/t00033.cc",
"line": 8
},
"type": "T"
}
],
"methods": [],
"name": "A",
"namespace": "clanguml::t00033",
"source_location": {
"file": "../../tests/t00033/t00033.cc",
"line": 7
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00033::B<T>",
"id": "765515233845859023",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "bbb",
"source_location": {
"file": "../../tests/t00033/t00033.cc",
"line": 12
},
"type": "T"
}
],
"methods": [],
"name": "B",
"namespace": "clanguml::t00033",
"source_location": {
"file": "../../tests/t00033/t00033.cc",
"line": 11
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00033::C<T>",
"id": "1436835384265552869",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": true,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "ccc",
"source_location": {
"file": "../../tests/t00033/t00033.cc",
"line": 16
},
"type": "T"
}
],
"methods": [],
"name": "C",
"namespace": "clanguml::t00033",
"source_location": {
"file": "../../tests/t00033/t00033.cc",
"line": 15
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00033::D",
"id": "2199581366769423637",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "ddd",
"source_location": {
"file": "../../tests/t00033/t00033.cc",
"line": 20
},
"type": "int"
}
],
"methods": [],
"name": "D",
"namespace": "clanguml::t00033",
"source_location": {
"file": "../../tests/t00033/t00033.cc",
"line": 19
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00033::C<clanguml::t00033::D>",
"id": "1609446044604054241",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "C",
"namespace": "clanguml::t00033",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "clanguml::t00033::D"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00033::B<std::unique_ptr<clanguml::t00033::C<clanguml::t00033::D>>>",
"id": "384927316081978893",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "B",
"namespace": "clanguml::t00033",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "clanguml::t00033::D"
}
],
"type": "clanguml::t00033::C"
}
],
"type": "std::unique_ptr"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00033::A<clanguml::t00033::B<std::unique_ptr<clanguml::t00033::C<clanguml::t00033::D>>>>",
"id": "1747493965420341251",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00033",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "clanguml::t00033::D"
}
],
"type": "clanguml::t00033::C"
}
],
"type": "std::unique_ptr"
}
],
"type": "clanguml::t00033::B"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00033::R",
"id": "1866392706312766470",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "abc",
"source_location": {
"file": "../../tests/t00033/t00033.cc",
"line": 24
},
"type": "A<B<std::unique_ptr<C<D>>>>"
}
],
"methods": [],
"name": "R",
"namespace": "clanguml::t00033",
"source_location": {
"file": "../../tests/t00033/t00033.cc",
"line": 23
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00033_class",
"relationships": [
{
"access": "public",
"destination": "2199581366769423637",
"source": "1609446044604054241",
"type": "dependency"
},
{
"access": "public",
"destination": "1436835384265552869",
"source": "1609446044604054241",
"type": "instantiation"
},
{
"access": "public",
"destination": "1609446044604054241",
"source": "384927316081978893",
"type": "dependency"
},
{
"access": "public",
"destination": "765515233845859023",
"source": "384927316081978893",
"type": "instantiation"
},
{
"access": "public",
"destination": "384927316081978893",
"source": "1747493965420341251",
"type": "dependency"
},
{
"access": "public",
"destination": "2036031998980633871",
"source": "1747493965420341251",
"type": "instantiation"
},
{
"access": "public",
"destination": "1747493965420341251",
"label": "abc",
"source": "1866392706312766470",
"type": "aggregation"
}
],
"using_namespace": "clanguml::t00033"
}
```

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="570px" preserveAspectRatio="none" style="width:435px;height:570px;" version="1.1" viewBox="0 0 435 570" width="435px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f19m6gn3oy8tof" width="300%" x="-1" y="-1">
<filter height="300%" id="f13oxro7s3ee89" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,8 +9,8 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19m6gn3oy8tof)" height="60.8047" id="C_0002036031998980633871" style="stroke: #A80036; stroke-width: 1.5;" width="66" x="76.5" y="255"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f13oxro7s3ee89)" height="60.8047" id="C_0002036031998980633871" style="stroke: #A80036; stroke-width: 1.5;" width="66" x="76.5" y="255"/>
<ellipse cx="98.25" cy="271" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M101.2188,276.6406 Q100.6406,276.9375 100,277.0781 Q99.3594,277.2344 98.6563,277.2344 Q96.1563,277.2344 94.8281,275.5938 Q93.5156,273.9375 93.5156,270.8125 Q93.5156,267.6875 94.8281,266.0313 Q96.1563,264.375 98.6563,264.375 Q99.3594,264.375 100,264.5313 Q100.6563,264.6875 101.2188,264.9844 L101.2188,267.7031 Q100.5938,267.125 100,266.8594 Q99.4063,266.5781 98.7813,266.5781 Q97.4375,266.5781 96.75,267.6563 Q96.0625,268.7188 96.0625,270.8125 Q96.0625,272.9063 96.75,273.9844 Q97.4375,275.0469 98.7813,275.0469 Q99.4063,275.0469 100,274.7813 Q100.5938,274.5 101.2188,273.9219 L101.2188,276.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="113.75" y="275.1543">A</text>
@@ -18,16 +18,16 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="137.5" y="264.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="77.5" x2="141.5" y1="287" y2="287"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L8" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L8" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L8" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L8" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="82.5" y="293"/>
<ellipse cx="87.5" cy="298" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L8" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L8" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L8" target="_top" title="aaa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L8" xlink:show="new" xlink:title="aaa" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="96.5" y="301.2104">aaa : T</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="77.5" x2="141.5" y1="307.8047" y2="307.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L11" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L11" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19m6gn3oy8tof)" height="60.8047" id="C_0000765515233845859023" style="stroke: #A80036; stroke-width: 1.5;" width="66" x="208.5" y="377"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L11" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L11" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f13oxro7s3ee89)" height="60.8047" id="C_0000765515233845859023" style="stroke: #A80036; stroke-width: 1.5;" width="66" x="208.5" y="377"/>
<ellipse cx="230.25" cy="393" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M233.2188,398.6406 Q232.6406,398.9375 232,399.0781 Q231.3594,399.2344 230.6563,399.2344 Q228.1563,399.2344 226.8281,397.5938 Q225.5156,395.9375 225.5156,392.8125 Q225.5156,389.6875 226.8281,388.0313 Q228.1563,386.375 230.6563,386.375 Q231.3594,386.375 232,386.5313 Q232.6563,386.6875 233.2188,386.9844 L233.2188,389.7031 Q232.5938,389.125 232,388.8594 Q231.4063,388.5781 230.7813,388.5781 Q229.4375,388.5781 228.75,389.6563 Q228.0625,390.7188 228.0625,392.8125 Q228.0625,394.9063 228.75,395.9844 Q229.4375,397.0469 230.7813,397.0469 Q231.4063,397.0469 232,396.7813 Q232.5938,396.5 233.2188,395.9219 L233.2188,398.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="245.75" y="397.1543">B</text>
@@ -35,16 +35,16 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="269.5" y="386.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="209.5" x2="273.5" y1="409" y2="409"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L12" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L12" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L12" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L12" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="214.5" y="415"/>
<ellipse cx="219.5" cy="420" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L12" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L12" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L12" target="_top" title="bbb" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L12" xlink:show="new" xlink:title="bbb" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="228.5" y="423.2104">bbb : T</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="209.5" x2="273.5" y1="429.8047" y2="429.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L15" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L15" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19m6gn3oy8tof)" height="60.8047" id="C_0001436835384265552869" style="stroke: #A80036; stroke-width: 1.5;" width="63" x="253" y="499"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L15" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L15" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f13oxro7s3ee89)" height="60.8047" id="C_0001436835384265552869" style="stroke: #A80036; stroke-width: 1.5;" width="63" x="253" y="499"/>
<ellipse cx="273.4" cy="515" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M276.3688,520.6406 Q275.7906,520.9375 275.15,521.0781 Q274.5094,521.2344 273.8063,521.2344 Q271.3063,521.2344 269.9781,519.5938 Q268.6656,517.9375 268.6656,514.8125 Q268.6656,511.6875 269.9781,510.0313 Q271.3063,508.375 273.8063,508.375 Q274.5094,508.375 275.15,508.5313 Q275.8063,508.6875 276.3688,508.9844 L276.3688,511.7031 Q275.7438,511.125 275.15,510.8594 Q274.5563,510.5781 273.9313,510.5781 Q272.5875,510.5781 271.9,511.6563 Q271.2125,512.7188 271.2125,514.8125 Q271.2125,516.9063 271.9,517.9844 Q272.5875,519.0469 273.9313,519.0469 Q274.5563,519.0469 275.15,518.7813 Q275.7438,518.5 276.3688,517.9219 L276.3688,520.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="288.6" y="519.1543">C</text>
@@ -52,30 +52,30 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="311" y="508.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="254" x2="315" y1="531" y2="531"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L16" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L16" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L16" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L16" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="259" y="537"/>
<ellipse cx="264" cy="542" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L16" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L16" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L16" target="_top" title="ccc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L16" xlink:show="new" xlink:title="ccc" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="273" y="545.2104">ccc : T</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="254" x2="315" y1="551.8047" y2="551.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L19" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L19" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19m6gn3oy8tof)" height="60.8047" id="C_0002199581366769423637" style="stroke: #A80036; stroke-width: 1.5;" width="73" x="351" y="499"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L19" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L19" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f13oxro7s3ee89)" height="60.8047" id="C_0002199581366769423637" style="stroke: #A80036; stroke-width: 1.5;" width="73" x="351" y="499"/>
<ellipse cx="380.4" cy="515" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M383.3688,520.6406 Q382.7906,520.9375 382.15,521.0781 Q381.5094,521.2344 380.8063,521.2344 Q378.3063,521.2344 376.9781,519.5938 Q375.6656,517.9375 375.6656,514.8125 Q375.6656,511.6875 376.9781,510.0313 Q378.3063,508.375 380.8063,508.375 Q381.5094,508.375 382.15,508.5313 Q382.8063,508.6875 383.3688,508.9844 L383.3688,511.7031 Q382.7438,511.125 382.15,510.8594 Q381.5563,510.5781 380.9313,510.5781 Q379.5875,510.5781 378.9,511.6563 Q378.2125,512.7188 378.2125,514.8125 Q378.2125,516.9063 378.9,517.9844 Q379.5875,519.0469 380.9313,519.0469 Q381.5563,519.0469 382.15,518.7813 Q382.7438,518.5 383.3688,517.9219 L383.3688,520.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="397.6" y="519.1543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="352" x2="423" y1="531" y2="531"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L20" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L20" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L20" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L20" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="357" y="537"/>
<ellipse cx="362" cy="542" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L20" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L20" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L20" target="_top" title="ddd" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L20" xlink:show="new" xlink:title="ddd" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="47" x="371" y="545.2104">ddd : int</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="352" x2="423" y1="551.8047" y2="551.8047"/>
<rect fill="#FEFECE" filter="url(#f19m6gn3oy8tof)" height="48" id="C_0001609446044604054241" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="310" y="383.5"/>
<rect fill="#FEFECE" filter="url(#f13oxro7s3ee89)" height="48" id="C_0001609446044604054241" style="stroke: #A80036; stroke-width: 1.5;" width="53" x="310" y="383.5"/>
<ellipse cx="325" cy="399.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M327.9688,405.1406 Q327.3906,405.4375 326.75,405.5781 Q326.1094,405.7344 325.4063,405.7344 Q322.9063,405.7344 321.5781,404.0938 Q320.2656,402.4375 320.2656,399.3125 Q320.2656,396.1875 321.5781,394.5313 Q322.9063,392.875 325.4063,392.875 Q326.1094,392.875 326.75,393.0313 Q327.4063,393.1875 327.9688,393.4844 L327.9688,396.2031 Q327.3438,395.625 326.75,395.3594 Q326.1563,395.0781 325.5313,395.0781 Q324.1875,395.0781 323.5,396.1563 Q322.8125,397.2188 322.8125,399.3125 Q322.8125,401.4063 323.5,402.4844 Q324.1875,403.5469 325.5313,403.5469 Q326.1563,403.5469 326.75,403.2813 Q327.3438,403 327.9688,402.4219 L327.9688,405.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="339" y="403.6543">C</text>
@@ -83,7 +83,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="9" x="356" y="392.6387">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="311" x2="362" y1="415.5" y2="415.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="311" x2="362" y1="423.5" y2="423.5"/>
<rect fill="#FEFECE" filter="url(#f19m6gn3oy8tof)" height="48" id="C_0000384927316081978893" style="stroke: #A80036; stroke-width: 1.5;" width="195" x="178" y="261.5"/>
<rect fill="#FEFECE" filter="url(#f13oxro7s3ee89)" height="48" id="C_0000384927316081978893" style="stroke: #A80036; stroke-width: 1.5;" width="195" x="178" y="261.5"/>
<ellipse cx="193" cy="277.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M195.9688,283.1406 Q195.3906,283.4375 194.75,283.5781 Q194.1094,283.7344 193.4063,283.7344 Q190.9063,283.7344 189.5781,282.0938 Q188.2656,280.4375 188.2656,277.3125 Q188.2656,274.1875 189.5781,272.5313 Q190.9063,270.875 193.4063,270.875 Q194.1094,270.875 194.75,271.0313 Q195.4063,271.1875 195.9688,271.4844 L195.9688,274.2031 Q195.3438,273.625 194.75,273.3594 Q194.1563,273.0781 193.5313,273.0781 Q192.1875,273.0781 191.5,274.1563 Q190.8125,275.2188 190.8125,277.3125 Q190.8125,279.4063 191.5,280.4844 Q192.1875,281.5469 193.5313,281.5469 Q194.1563,281.5469 194.75,281.2813 Q195.3438,281 195.9688,280.4219 L195.9688,283.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="207" y="281.6543">B</text>
@@ -91,7 +91,7 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="151" x="224" y="270.6387">std::unique_ptr&lt;C&lt;D&gt;&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="179" x2="372" y1="293.5" y2="293.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="179" x2="372" y1="301.5" y2="301.5"/>
<rect fill="#FEFECE" filter="url(#f19m6gn3oy8tof)" height="48" id="C_0001747493965420341251" style="stroke: #A80036; stroke-width: 1.5;" width="223" x="18" y="146"/>
<rect fill="#FEFECE" filter="url(#f13oxro7s3ee89)" height="48" id="C_0001747493965420341251" style="stroke: #A80036; stroke-width: 1.5;" width="223" x="18" y="146"/>
<ellipse cx="33" cy="162" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M35.9688,167.6406 Q35.3906,167.9375 34.75,168.0781 Q34.1094,168.2344 33.4063,168.2344 Q30.9063,168.2344 29.5781,166.5938 Q28.2656,164.9375 28.2656,161.8125 Q28.2656,158.6875 29.5781,157.0313 Q30.9063,155.375 33.4063,155.375 Q34.1094,155.375 34.75,155.5313 Q35.4063,155.6875 35.9688,155.9844 L35.9688,158.7031 Q35.3438,158.125 34.75,157.8594 Q34.1563,157.5781 33.5313,157.5781 Q32.1875,157.5781 31.5,158.6563 Q30.8125,159.7188 30.8125,161.8125 Q30.8125,163.9063 31.5,164.9844 Q32.1875,166.0469 33.5313,166.0469 Q34.1563,166.0469 34.75,165.7813 Q35.3438,165.5 35.9688,164.9219 L35.9688,167.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="47" y="166.1543">A</text>
@@ -99,18 +99,18 @@
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="179" x="64" y="155.1387">B&lt;std::unique_ptr&lt;C&lt;D&gt;&gt;&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="19" x2="240" y1="178" y2="178"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="19" x2="240" y1="186" y2="186"/>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L23" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L23" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19m6gn3oy8tof)" height="60.8047" id="C_0001866392706312766470" style="stroke: #A80036; stroke-width: 1.5;" width="247" x="6" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L23" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L23" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f13oxro7s3ee89)" height="60.8047" id="C_0001866392706312766470" style="stroke: #A80036; stroke-width: 1.5;" width="247" x="6" y="8"/>
<ellipse cx="121.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M124.2188,29.6406 Q123.6406,29.9375 123,30.0781 Q122.3594,30.2344 121.6563,30.2344 Q119.1563,30.2344 117.8281,28.5938 Q116.5156,26.9375 116.5156,23.8125 Q116.5156,20.6875 117.8281,19.0313 Q119.1563,17.375 121.6563,17.375 Q122.3594,17.375 123,17.5313 Q123.6563,17.6875 124.2188,17.9844 L124.2188,20.7031 Q123.5938,20.125 123,19.8594 Q122.4063,19.5781 121.7813,19.5781 Q120.4375,19.5781 119.75,20.6563 Q119.0625,21.7188 119.0625,23.8125 Q119.0625,25.9063 119.75,26.9844 Q120.4375,28.0469 121.7813,28.0469 Q122.4063,28.0469 123,27.7813 Q123.5938,27.5 124.2188,26.9219 L124.2188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="141.75" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="252" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L24" target="_top" title="abc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L24" xlink:show="new" xlink:title="abc" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L24" target="_top" title="abc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L24" xlink:show="new" xlink:title="abc" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="46"/>
<ellipse cx="17" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L24" target="_top" title="abc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00033/t00033.cc#L24" xlink:show="new" xlink:title="abc" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L24" target="_top" title="abc" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00033/t00033.cc#L24" xlink:show="new" xlink:title="abc" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="221" x="26" y="54.2104">abc : A&lt;B&lt;std::unique_ptr&lt;C&lt;D&gt;&gt;&gt;&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="252" y1="60.8047" y2="60.8047"/>

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -63,8 +63,7 @@ template <> struct drop_void<Void> {
template <typename T> using drop_void_t = typename drop_void<T>::type;
struct A {
};
struct A { };
struct R {
lift_void_t<A> *la;
@@ -77,3 +76,258 @@ struct R {
```
## Generated UML diagrams
![t00034_class](./t00034_class.svg "Template metaprogramming type function test case")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00034::Void",
"id": "1704456490210873213",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"is_const": true,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "operator==",
"parameters": [
{
"name": "",
"type": "const clanguml::t00034::Void &"
}
],
"type": "bool"
},
{
"access": "public",
"is_const": true,
"is_defaulted": false,
"is_implicit": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "operator!=",
"parameters": [
{
"name": "",
"type": "const clanguml::t00034::Void &"
}
],
"type": "bool"
}
],
"name": "Void",
"namespace": "clanguml::t00034",
"source_location": {
"file": "../../tests/t00034/t00034.cc",
"line": 9
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00034::lift_void<T>",
"id": "867472442996685316",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": true,
"is_union": false,
"members": [],
"methods": [],
"name": "lift_void",
"namespace": "clanguml::t00034",
"source_location": {
"file": "../../tests/t00034/t00034.cc",
"line": 16
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00034::lift_void<void>",
"id": "126450862226197239",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "lift_void",
"namespace": "clanguml::t00034",
"source_location": {
"file": "../../tests/t00034/t00034.cc",
"line": 20
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "void"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00034::drop_void<T>",
"id": "1578745816100337706",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": true,
"is_union": false,
"members": [],
"methods": [],
"name": "drop_void",
"namespace": "clanguml::t00034",
"source_location": {
"file": "../../tests/t00034/t00034.cc",
"line": 33
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00034::drop_void<clanguml::t00034::Void>",
"id": "1849836134504075115",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "drop_void",
"namespace": "clanguml::t00034",
"source_location": {
"file": "../../tests/t00034/t00034.cc",
"line": 37
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "clanguml::t00034::Void"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00034::A",
"id": "1383912907884688827",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00034",
"source_location": {
"file": "../../tests/t00034/t00034.cc",
"line": 43
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00034::R",
"id": "1713991735741265309",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [
{
"access": "public",
"is_static": false,
"name": "la",
"source_location": {
"file": "../../tests/t00034/t00034.cc",
"line": 46
},
"type": "lift_void_t<clanguml::t00034::A> *"
},
{
"access": "public",
"is_static": false,
"name": "lv",
"source_location": {
"file": "../../tests/t00034/t00034.cc",
"line": 47
},
"type": "lift_void_t<void> *"
}
],
"methods": [],
"name": "R",
"namespace": "clanguml::t00034",
"source_location": {
"file": "../../tests/t00034/t00034.cc",
"line": 45
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00034_class",
"relationships": [
{
"access": "public",
"destination": "867472442996685316",
"source": "126450862226197239",
"type": "instantiation"
},
{
"access": "public",
"destination": "1578745816100337706",
"source": "1849836134504075115",
"type": "instantiation"
},
{
"access": "public",
"destination": "1383912907884688827",
"label": "la",
"source": "1713991735741265309",
"type": "association"
}
],
"using_namespace": "clanguml::t00034"
}
```

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="243px" preserveAspectRatio="none" style="width:636px;height:243px;" version="1.1" viewBox="0 0 636 243" width="636px" 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="218px" preserveAspectRatio="none" style="width:752px;height:218px;" version="1.1" viewBox="0 0 752 218" width="752px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="fsf8au2u7q4fz" width="300%" x="-1" y="-1">
<filter height="300%" id="f16yt2f3rsmrp9" width="300%" x="-1" y="-1">
<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"/>
<feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
@@ -9,103 +9,99 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L9" target="_top" title="Void" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L9" xlink:show="new" xlink:title="Void" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fsf8au2u7q4fz)" height="73.6094" id="C_0001704456490210873213" style="stroke: #A80036; stroke-width: 1.5;" width="249" x="6" y="159"/>
<ellipse cx="112.75" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M115.7188,180.6406 Q115.1406,180.9375 114.5,181.0781 Q113.8594,181.2344 113.1563,181.2344 Q110.6563,181.2344 109.3281,179.5938 Q108.0156,177.9375 108.0156,174.8125 Q108.0156,171.6875 109.3281,170.0313 Q110.6563,168.375 113.1563,168.375 Q113.8594,168.375 114.5,168.5313 Q115.1563,168.6875 115.7188,168.9844 L115.7188,171.7031 Q115.0938,171.125 114.5,170.8594 Q113.9063,170.5781 113.2813,170.5781 Q111.9375,170.5781 111.25,171.6563 Q110.5625,172.7188 110.5625,174.8125 Q110.5625,176.9063 111.25,177.9844 Q111.9375,179.0469 113.2813,179.0469 Q113.9063,179.0469 114.5,178.7813 Q115.0938,178.5 115.7188,177.9219 L115.7188,180.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="133.25" y="179.1543">Void</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="254" y1="191" y2="191"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="254" y1="199" y2="199"/>
<ellipse cx="17" cy="210" 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="223" x="26" y="213.2104">operator==(const Void &amp; ) const : bool</text>
<ellipse cx="17" cy="222.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="217" x="26" y="226.0151">operator!=(const Void &amp; ) const : bool</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L9" target="_top" title="Void" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L9" xlink:show="new" xlink:title="Void" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16yt2f3rsmrp9)" height="73.6094" id="C_0001704456490210873213" style="stroke: #A80036; stroke-width: 1.5;" width="249" x="6" y="8"/>
<ellipse cx="112.75" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M115.7188,29.6406 Q115.1406,29.9375 114.5,30.0781 Q113.8594,30.2344 113.1563,30.2344 Q110.6563,30.2344 109.3281,28.5938 Q108.0156,26.9375 108.0156,23.8125 Q108.0156,20.6875 109.3281,19.0313 Q110.6563,17.375 113.1563,17.375 Q113.8594,17.375 114.5,17.5313 Q115.1563,17.6875 115.7188,17.9844 L115.7188,20.7031 Q115.0938,20.125 114.5,19.8594 Q113.9063,19.5781 113.2813,19.5781 Q111.9375,19.5781 111.25,20.6563 Q110.5625,21.7188 110.5625,23.8125 Q110.5625,25.9063 111.25,26.9844 Q111.9375,28.0469 113.2813,28.0469 Q113.9063,28.0469 114.5,27.7813 Q115.0938,27.5 115.7188,26.9219 L115.7188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="27" x="133.25" y="28.1543">Void</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="254" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="254" y1="48" y2="48"/>
<ellipse cx="17" 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="223" x="26" y="62.2104">operator==(const Void &amp; ) const : bool</text>
<ellipse cx="17" 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="217" x="26" y="75.0151">operator!=(const Void &amp; ) const : bool</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L16" target="_top" title="lift_void" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L16" xlink:show="new" xlink:title="lift_void" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fsf8au2u7q4fz)" height="48" id="C_0000867472442996685316" style="stroke: #A80036; stroke-width: 1.5;" width="89" x="366" y="172"/>
<ellipse cx="381" cy="188" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M383.9688,193.6406 Q383.3906,193.9375 382.75,194.0781 Q382.1094,194.2344 381.4063,194.2344 Q378.9063,194.2344 377.5781,192.5938 Q376.2656,190.9375 376.2656,187.8125 Q376.2656,184.6875 377.5781,183.0313 Q378.9063,181.375 381.4063,181.375 Q382.1094,181.375 382.75,181.5313 Q383.4063,181.6875 383.9688,181.9844 L383.9688,184.7031 Q383.3438,184.125 382.75,183.8594 Q382.1563,183.5781 381.5313,183.5781 Q380.1875,183.5781 379.5,184.6563 Q378.8125,185.7188 378.8125,187.8125 Q378.8125,189.9063 379.5,190.9844 Q380.1875,192.0469 381.5313,192.0469 Q382.1563,192.0469 382.75,191.7813 Q383.3438,191.5 383.9688,190.9219 L383.9688,193.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="46" x="395" y="192.1543">lift_void</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="449" y="169"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="450" y="181.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="367" x2="454" y1="204" y2="204"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="367" x2="454" y1="212" y2="212"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L16" target="_top" title="lift_void" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L16" xlink:show="new" xlink:title="lift_void" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16yt2f3rsmrp9)" height="48" id="C_0000867472442996685316" style="stroke: #A80036; stroke-width: 1.5;" width="89" x="299" y="159"/>
<ellipse cx="314" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M316.9688,180.6406 Q316.3906,180.9375 315.75,181.0781 Q315.1094,181.2344 314.4063,181.2344 Q311.9063,181.2344 310.5781,179.5938 Q309.2656,177.9375 309.2656,174.8125 Q309.2656,171.6875 310.5781,170.0313 Q311.9063,168.375 314.4063,168.375 Q315.1094,168.375 315.75,168.5313 Q316.4063,168.6875 316.9688,168.9844 L316.9688,171.7031 Q316.3438,171.125 315.75,170.8594 Q315.1563,170.5781 314.5313,170.5781 Q313.1875,170.5781 312.5,171.6563 Q311.8125,172.7188 311.8125,174.8125 Q311.8125,176.9063 312.5,177.9844 Q313.1875,179.0469 314.5313,179.0469 Q315.1563,179.0469 315.75,178.7813 Q316.3438,178.5 316.9688,177.9219 L316.9688,180.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="46" x="328" y="179.1543">lift_void</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="382" y="156"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="383" y="168.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="300" x2="387" y1="191" y2="191"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="300" x2="387" y1="199" y2="199"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L20" target="_top" title="lift_void" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L20" xlink:show="new" xlink:title="lift_void" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fsf8au2u7q4fz)" height="48" id="C_0000126450862226197239" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="357" y="21"/>
<ellipse cx="372" cy="37" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M374.9688,42.6406 Q374.3906,42.9375 373.75,43.0781 Q373.1094,43.2344 372.4063,43.2344 Q369.9063,43.2344 368.5781,41.5938 Q367.2656,39.9375 367.2656,36.8125 Q367.2656,33.6875 368.5781,32.0313 Q369.9063,30.375 372.4063,30.375 Q373.1094,30.375 373.75,30.5313 Q374.4063,30.6875 374.9688,30.9844 L374.9688,33.7031 Q374.3438,33.125 373.75,32.8594 Q373.1563,32.5781 372.5313,32.5781 Q371.1875,32.5781 370.5,33.6563 Q369.8125,34.7188 369.8125,36.8125 Q369.8125,38.9063 370.5,39.9844 Q371.1875,41.0469 372.5313,41.0469 Q373.1563,41.0469 373.75,40.7813 Q374.3438,40.5 374.9688,39.9219 L374.9688,42.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="46" x="386" y="41.1543">lift_void</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="27" x="440" y="18"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="25" x="441" y="30.1387">void</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="358" x2="463" y1="53" y2="53"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="358" x2="463" y1="61" y2="61"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L20" target="_top" title="lift_void" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L20" xlink:show="new" xlink:title="lift_void" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16yt2f3rsmrp9)" height="48" id="C_0000126450862226197239" style="stroke: #A80036; stroke-width: 1.5;" width="107" x="290" y="21"/>
<ellipse cx="305" cy="37" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M307.9688,42.6406 Q307.3906,42.9375 306.75,43.0781 Q306.1094,43.2344 305.4063,43.2344 Q302.9063,43.2344 301.5781,41.5938 Q300.2656,39.9375 300.2656,36.8125 Q300.2656,33.6875 301.5781,32.0313 Q302.9063,30.375 305.4063,30.375 Q306.1094,30.375 306.75,30.5313 Q307.4063,30.6875 307.9688,30.9844 L307.9688,33.7031 Q307.3438,33.125 306.75,32.8594 Q306.1563,32.5781 305.5313,32.5781 Q304.1875,32.5781 303.5,33.6563 Q302.8125,34.7188 302.8125,36.8125 Q302.8125,38.9063 303.5,39.9844 Q304.1875,41.0469 305.5313,41.0469 Q306.1563,41.0469 306.75,40.7813 Q307.3438,40.5 307.9688,39.9219 L307.9688,42.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="46" x="319" y="41.1543">lift_void</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="27" x="373" y="18"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="25" x="374" y="30.1387">void</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="291" x2="396" y1="53" y2="53"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="291" x2="396" y1="61" y2="61"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L33" target="_top" title="drop_void" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L33" xlink:show="new" xlink:title="drop_void" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fsf8au2u7q4fz)" height="48" id="C_0001578745816100337706" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="509" y="172"/>
<ellipse cx="524" cy="188" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M526.9688,193.6406 Q526.3906,193.9375 525.75,194.0781 Q525.1094,194.2344 524.4063,194.2344 Q521.9063,194.2344 520.5781,192.5938 Q519.2656,190.9375 519.2656,187.8125 Q519.2656,184.6875 520.5781,183.0313 Q521.9063,181.375 524.4063,181.375 Q525.1094,181.375 525.75,181.5313 Q526.4063,181.6875 526.9688,181.9844 L526.9688,184.7031 Q526.3438,184.125 525.75,183.8594 Q525.1563,183.5781 524.5313,183.5781 Q523.1875,183.5781 522.5,184.6563 Q521.8125,185.7188 521.8125,187.8125 Q521.8125,189.9063 522.5,190.9844 Q523.1875,192.0469 524.5313,192.0469 Q525.1563,192.0469 525.75,191.7813 Q526.3438,191.5 526.9688,190.9219 L526.9688,193.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="538" y="192.1543">drop_void</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="606" y="169"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="607" y="181.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="510" x2="611" y1="204" y2="204"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="510" x2="611" y1="212" y2="212"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L33" target="_top" title="drop_void" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L33" xlink:show="new" xlink:title="drop_void" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16yt2f3rsmrp9)" height="48" id="C_0001578745816100337706" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="442" y="159"/>
<ellipse cx="457" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M459.9688,180.6406 Q459.3906,180.9375 458.75,181.0781 Q458.1094,181.2344 457.4063,181.2344 Q454.9063,181.2344 453.5781,179.5938 Q452.2656,177.9375 452.2656,174.8125 Q452.2656,171.6875 453.5781,170.0313 Q454.9063,168.375 457.4063,168.375 Q458.1094,168.375 458.75,168.5313 Q459.4063,168.6875 459.9688,168.9844 L459.9688,171.7031 Q459.3438,171.125 458.75,170.8594 Q458.1563,170.5781 457.5313,170.5781 Q456.1875,170.5781 455.5,171.6563 Q454.8125,172.7188 454.8125,174.8125 Q454.8125,176.9063 455.5,177.9844 Q456.1875,179.0469 457.5313,179.0469 Q458.1563,179.0469 458.75,178.7813 Q459.3438,178.5 459.9688,177.9219 L459.9688,180.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="471" y="179.1543">drop_void</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="539" y="156"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="540" y="168.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="443" x2="544" y1="191" y2="191"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="443" x2="544" y1="199" y2="199"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L37" target="_top" title="drop_void" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L37" xlink:show="new" xlink:title="drop_void" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fsf8au2u7q4fz)" height="48" id="C_0001849836134504075115" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="499" y="21"/>
<ellipse cx="514" cy="37" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M516.9688,42.6406 Q516.3906,42.9375 515.75,43.0781 Q515.1094,43.2344 514.4063,43.2344 Q511.9063,43.2344 510.5781,41.5938 Q509.2656,39.9375 509.2656,36.8125 Q509.2656,33.6875 510.5781,32.0313 Q511.9063,30.375 514.4063,30.375 Q515.1094,30.375 515.75,30.5313 Q516.4063,30.6875 516.9688,30.9844 L516.9688,33.7031 Q516.3438,33.125 515.75,32.8594 Q515.1563,32.5781 514.5313,32.5781 Q513.1875,32.5781 512.5,33.6563 Q511.8125,34.7188 511.8125,36.8125 Q511.8125,38.9063 512.5,39.9844 Q513.1875,41.0469 514.5313,41.0469 Q515.1563,41.0469 515.75,40.7813 Q516.3438,40.5 516.9688,39.9219 L516.9688,42.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="528" y="41.1543">drop_void</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="29" x="596" y="18"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="597" y="30.1387">Void</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="500" x2="621" y1="53" y2="53"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="500" x2="621" y1="61" y2="61"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L37" target="_top" title="drop_void" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L37" xlink:show="new" xlink:title="drop_void" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16yt2f3rsmrp9)" height="48" id="C_0001849836134504075115" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="432" y="21"/>
<ellipse cx="447" cy="37" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M449.9688,42.6406 Q449.3906,42.9375 448.75,43.0781 Q448.1094,43.2344 447.4063,43.2344 Q444.9063,43.2344 443.5781,41.5938 Q442.2656,39.9375 442.2656,36.8125 Q442.2656,33.6875 443.5781,32.0313 Q444.9063,30.375 447.4063,30.375 Q448.1094,30.375 448.75,30.5313 Q449.4063,30.6875 449.9688,30.9844 L449.9688,33.7031 Q449.3438,33.125 448.75,32.8594 Q448.1563,32.5781 447.5313,32.5781 Q446.1875,32.5781 445.5,33.6563 Q444.8125,34.7188 444.8125,36.8125 Q444.8125,38.9063 445.5,39.9844 Q446.1875,41.0469 447.5313,41.0469 Q448.1563,41.0469 448.75,40.7813 Q449.3438,40.5 449.9688,39.9219 L449.9688,42.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="461" y="41.1543">drop_void</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="29" x="529" y="18"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="530" y="30.1387">Void</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="433" x2="554" y1="53" y2="53"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="433" x2="554" y1="61" y2="61"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L43" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L43" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fsf8au2u7q4fz)" height="48" id="C_0001383912907884688827" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="290.5" y="172"/>
<ellipse cx="305.5" cy="188" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M308.4688,193.6406 Q307.8906,193.9375 307.25,194.0781 Q306.6094,194.2344 305.9063,194.2344 Q303.4063,194.2344 302.0781,192.5938 Q300.7656,190.9375 300.7656,187.8125 Q300.7656,184.6875 302.0781,183.0313 Q303.4063,181.375 305.9063,181.375 Q306.6094,181.375 307.25,181.5313 Q307.9063,181.6875 308.4688,181.9844 L308.4688,184.7031 Q307.8438,184.125 307.25,183.8594 Q306.6563,183.5781 306.0313,183.5781 Q304.6875,183.5781 304,184.6563 Q303.3125,185.7188 303.3125,187.8125 Q303.3125,189.9063 304,190.9844 Q304.6875,192.0469 306.0313,192.0469 Q306.6563,192.0469 307.25,191.7813 Q307.8438,191.5 308.4688,190.9219 L308.4688,193.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="319.5" y="192.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="291.5" x2="329.5" y1="204" y2="204"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="291.5" x2="329.5" y1="212" y2="212"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L43" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L43" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16yt2f3rsmrp9)" height="48" id="C_0001383912907884688827" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="645.5" y="159"/>
<ellipse cx="660.5" cy="175" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M663.4688,180.6406 Q662.8906,180.9375 662.25,181.0781 Q661.6094,181.2344 660.9063,181.2344 Q658.4063,181.2344 657.0781,179.5938 Q655.7656,177.9375 655.7656,174.8125 Q655.7656,171.6875 657.0781,170.0313 Q658.4063,168.375 660.9063,168.375 Q661.6094,168.375 662.25,168.5313 Q662.9063,168.6875 663.4688,168.9844 L663.4688,171.7031 Q662.8438,171.125 662.25,170.8594 Q661.6563,170.5781 661.0313,170.5781 Q659.6875,170.5781 659,171.6563 Q658.3125,172.7188 658.3125,174.8125 Q658.3125,176.9063 659,177.9844 Q659.6875,179.0469 661.0313,179.0469 Q661.6563,179.0469 662.25,178.7813 Q662.8438,178.5 663.4688,177.9219 L663.4688,180.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="674.5" y="179.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="646.5" x2="684.5" y1="191" y2="191"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="646.5" x2="684.5" y1="199" y2="199"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L46" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L46" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fsf8au2u7q4fz)" height="73.6094" id="C_0001713991735741265309" style="stroke: #A80036; stroke-width: 1.5;" width="151" x="170" y="8"/>
<ellipse cx="237.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M240.2188,29.6406 Q239.6406,29.9375 239,30.0781 Q238.3594,30.2344 237.6563,30.2344 Q235.1563,30.2344 233.8281,28.5938 Q232.5156,26.9375 232.5156,23.8125 Q232.5156,20.6875 233.8281,19.0313 Q235.1563,17.375 237.6563,17.375 Q238.3594,17.375 239,17.5313 Q239.6563,17.6875 240.2188,17.9844 L240.2188,20.7031 Q239.5938,20.125 239,19.8594 Q238.4063,19.5781 237.7813,19.5781 Q236.4375,19.5781 235.75,20.6563 Q235.0625,21.7188 235.0625,23.8125 Q235.0625,25.9063 235.75,26.9844 Q236.4375,28.0469 237.7813,28.0469 Q238.4063,28.0469 239,27.7813 Q239.5938,27.5 240.2188,26.9219 L240.2188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="257.75" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="171" x2="320" y1="40" y2="40"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L45" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L45" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f16yt2f3rsmrp9)" height="73.6094" id="C_0001713991735741265309" style="stroke: #A80036; stroke-width: 1.5;" width="151" x="590" y="8"/>
<ellipse cx="657.25" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M660.2188,29.6406 Q659.6406,29.9375 659,30.0781 Q658.3594,30.2344 657.6563,30.2344 Q655.1563,30.2344 653.8281,28.5938 Q652.5156,26.9375 652.5156,23.8125 Q652.5156,20.6875 653.8281,19.0313 Q655.1563,17.375 657.6563,17.375 Q658.3594,17.375 659,17.5313 Q659.6563,17.6875 660.2188,17.9844 L660.2188,20.7031 Q659.5938,20.125 659,19.8594 Q658.4063,19.5781 657.7813,19.5781 Q656.4375,19.5781 655.75,20.6563 Q655.0625,21.7188 655.0625,23.8125 Q655.0625,25.9063 655.75,26.9844 Q656.4375,28.0469 657.7813,28.0469 Q658.4063,28.0469 659,27.7813 Q659.5938,27.5 660.2188,26.9219 L660.2188,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="677.75" y="28.1543">R</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="591" x2="740" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L47" target="_top" title="la" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L47" xlink:show="new" xlink:title="la" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="176" y="46"/>
<ellipse cx="181" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L46" target="_top" title="la" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L46" xlink:show="new" xlink:title="la" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="596" y="46"/>
<ellipse cx="601" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L47" target="_top" title="la" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L47" xlink:show="new" xlink:title="la" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="190" y="54.2104">la : lift_void_t&lt;A&gt; *</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L46" target="_top" title="la" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L46" xlink:show="new" xlink:title="la" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="610" y="54.2104">la : lift_void_t&lt;A&gt; *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L48" target="_top" title="lv" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L48" xlink:show="new" xlink:title="lv" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="176" y="58.8047"/>
<ellipse cx="181" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L47" target="_top" title="lv" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L47" xlink:show="new" xlink:title="lv" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="596" y="58.8047"/>
<ellipse cx="601" cy="63.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L48" target="_top" title="lv" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00034/t00034.cc#L48" xlink:show="new" xlink:title="lv" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="190" y="67.0151">lv : lift_void_t&lt;void&gt; *</text>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L47" target="_top" title="lv" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00034/t00034.cc#L47" xlink:show="new" xlink:title="lv" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="610" y="67.0151">lv : lift_void_t&lt;void&gt; *</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="171" x2="320" y1="73.6094" y2="73.6094"/>
<path d="M410.5,69.28 C410.5,91.26 410.5,124.76 410.5,151.66 " fill="none" id="C_0000126450862226197239-&gt;C_0000867472442996685316" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="417.5,151.88,410.5,171.88,403.5,151.88,417.5,151.88" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M560.5,69.28 C560.5,91.26 560.5,124.76 560.5,151.66 " fill="none" id="C_0001849836134504075115-&gt;C_0001578745816100337706" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="567.5,151.88,560.5,171.88,553.5,151.88,567.5,151.88" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M237.61,82.35 C236.01,97.33 236.38,114.52 242.5,129 C243.11,130.45 267.22,153.68 286.56,172.18 " fill="none" id="C_0001713991735741265309-&gt;C_0001383912907884688827" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="290.36,175.81,286.6211,166.6984,286.7468,172.3539,281.0913,172.4796,290.36,175.81" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="248.5" cy="121.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="11" x="255.5" y="125.0669">la</text>
<path d="M261.23,82.07 C272.65,108.23 287.86,143.1 298.34,167.13 " fill="none" id="C_0001713991735741265309-&gt;C_0001383912907884688827-1" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="300.37,171.79,300.4385,161.9414,298.3712,167.2069,293.1056,165.1395,300.37,171.79" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="286.5" cy="121.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="11" x="293.5" y="125.0669">la</text>
<path d="M217.66,82.07 C200.77,103.96 179.16,131.95 161.69,154.59 " fill="none" id="C_0001713991735741265309-&gt;C_0001704456490210873213" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="158.48,158.75,167.1477,154.0733,161.5368,154.7933,160.8169,149.1824,158.48,158.75" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="197.5" cy="121.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="10" x="204.5" y="125.0669">lv</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="591" x2="740" y1="73.6094" y2="73.6094"/>
<path d="M343.5,69.07 C343.5,88.12 343.5,115.68 343.5,138.81 " fill="none" id="C_0000126450862226197239-&gt;C_0000867472442996685316" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="350.5,138.82,343.5,158.82,336.5,138.82,350.5,138.82" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M493.5,69.07 C493.5,88.12 493.5,115.68 493.5,138.81 " fill="none" id="C_0001849836134504075115-&gt;C_0001578745816100337706" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="500.5,138.82,493.5,158.82,486.5,138.82,500.5,138.82" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M637.64,82.11 C629.84,96.44 624.65,113.24 629.5,129 C632.26,137.97 637.11,146.79 642.37,154.57 " fill="none" id="C_0001713991735741265309-&gt;C_0001383912907884688827" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="645.33,158.79,643.4276,149.1266,642.455,154.6992,636.8824,153.7266,645.33,158.79" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="635.5" cy="121.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="11" x="642.5" y="125.0669">la</text>
<path d="M665.5,82.09 C665.5,104.43 665.5,132.72 665.5,153.49 " fill="none" id="C_0001713991735741265309-&gt;C_0001383912907884688827-1" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="665.5,158.6,669.5,149.6,665.5,153.6,661.5,149.6,665.5,158.6" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="671.5" cy="121.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="11" x="678.5" y="125.0669">la</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -27,20 +27,15 @@ File t00035.cc
namespace clanguml {
namespace t00035 {
struct Top {
};
struct Top { };
struct Left {
};
struct Left { };
struct Center {
};
struct Center { };
struct Bottom {
};
struct Bottom { };
struct Right {
};
struct Right { };
} // namespace t00035
} // namespace clanguml
@@ -48,3 +43,114 @@ struct Right {
```
## Generated UML diagrams
![t00035_class](./t00035_class.svg "PlantUML class diagram layout hints test case")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "clanguml::t00035::Top",
"id": "2241062883697294772",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Top",
"namespace": "clanguml::t00035",
"source_location": {
"file": "../../tests/t00035/t00035.cc",
"line": 4
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00035::Left",
"id": "242562856080127946",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Left",
"namespace": "clanguml::t00035",
"source_location": {
"file": "../../tests/t00035/t00035.cc",
"line": 6
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00035::Center",
"id": "1933304541849408421",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Center",
"namespace": "clanguml::t00035",
"source_location": {
"file": "../../tests/t00035/t00035.cc",
"line": 8
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00035::Bottom",
"id": "1646691079607377420",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Bottom",
"namespace": "clanguml::t00035",
"source_location": {
"file": "../../tests/t00035/t00035.cc",
"line": 10
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "clanguml::t00035::Right",
"id": "200121820090372322",
"is_abstract": false,
"is_nested": false,
"is_struct": true,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "Right",
"namespace": "clanguml::t00035",
"source_location": {
"file": "../../tests/t00035/t00035.cc",
"line": 12
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00035_class",
"relationships": [],
"using_namespace": "clanguml::t00035"
}
```

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:280px;height:283px;" version="1.1" viewBox="0 0 280 283" width="280px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1h9xaqxfupk1u" width="300%" x="-1" y="-1">
<filter height="300%" id="f18j9589feibzq" width="300%" x="-1" y="-1">
<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"/>
<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>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00035/t00035.cc#L4" target="_top" title="Top" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00035/t00035.cc#L4" xlink:show="new" xlink:title="Top" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h9xaqxfupk1u)" height="48" id="C_0002241062883697294772" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="106" y="8"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00035/t00035.cc#L4" target="_top" title="Top" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00035/t00035.cc#L4" xlink:show="new" xlink:title="Top" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f18j9589feibzq)" height="48" id="C_0002241062883697294772" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="106" y="8"/>
<ellipse cx="121" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M123.9688,29.6406 Q123.3906,29.9375 122.75,30.0781 Q122.1094,30.2344 121.4063,30.2344 Q118.9063,30.2344 117.5781,28.5938 Q116.2656,26.9375 116.2656,23.8125 Q116.2656,20.6875 117.5781,19.0313 Q118.9063,17.375 121.4063,17.375 Q122.1094,17.375 122.75,17.5313 Q123.4063,17.6875 123.9688,17.9844 L123.9688,20.7031 Q123.3438,20.125 122.75,19.8594 Q122.1563,19.5781 121.5313,19.5781 Q120.1875,19.5781 119.5,20.6563 Q118.8125,21.7188 118.8125,23.8125 Q118.8125,25.9063 119.5,26.9844 Q120.1875,28.0469 121.5313,28.0469 Q122.1563,28.0469 122.75,27.7813 Q123.3438,27.5 123.9688,26.9219 L123.9688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="23" x="135" y="28.1543">Top</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="107" x2="160" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="107" x2="160" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00035/t00035.cc#L7" target="_top" title="Left" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00035/t00035.cc#L7" xlink:show="new" xlink:title="Left" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h9xaqxfupk1u)" height="48" id="C_0000242562856080127946" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="6" y="116"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00035/t00035.cc#L6" target="_top" title="Left" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00035/t00035.cc#L6" xlink:show="new" xlink:title="Left" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f18j9589feibzq)" height="48" id="C_0000242562856080127946" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="6" y="116"/>
<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 "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="23" x="35" y="136.1543">Left</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="60" y1="148" y2="148"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="60" y1="156" y2="156"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00035/t00035.cc#L10" target="_top" title="Center" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00035/t00035.cc#L10" xlink:show="new" xlink:title="Center" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h9xaqxfupk1u)" height="48" id="C_0001933304541849408421" style="stroke: #A80036; stroke-width: 1.5;" width="74" x="96.5" y="116"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00035/t00035.cc#L8" target="_top" title="Center" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00035/t00035.cc#L8" xlink:show="new" xlink:title="Center" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f18j9589feibzq)" height="48" id="C_0001933304541849408421" style="stroke: #A80036; stroke-width: 1.5;" width="74" x="96.5" y="116"/>
<ellipse cx="111.5" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M114.4688,137.6406 Q113.8906,137.9375 113.25,138.0781 Q112.6094,138.2344 111.9063,138.2344 Q109.4063,138.2344 108.0781,136.5938 Q106.7656,134.9375 106.7656,131.8125 Q106.7656,128.6875 108.0781,127.0313 Q109.4063,125.375 111.9063,125.375 Q112.6094,125.375 113.25,125.5313 Q113.9063,125.6875 114.4688,125.9844 L114.4688,128.7031 Q113.8438,128.125 113.25,127.8594 Q112.6563,127.5781 112.0313,127.5781 Q110.6875,127.5781 110,128.6563 Q109.3125,129.7188 109.3125,131.8125 Q109.3125,133.9063 110,134.9844 Q110.6875,136.0469 112.0313,136.0469 Q112.6563,136.0469 113.25,135.7813 Q113.8438,135.5 114.4688,134.9219 L114.4688,137.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="42" x="125.5" y="136.1543">Center</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="169.5" y1="148" y2="148"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="97.5" x2="169.5" y1="156" y2="156"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00035/t00035.cc#L13" target="_top" title="Bottom" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00035/t00035.cc#L13" xlink:show="new" xlink:title="Bottom" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h9xaqxfupk1u)" height="48" id="C_0001646691079607377420" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="95" y="224"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00035/t00035.cc#L10" target="_top" title="Bottom" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00035/t00035.cc#L10" xlink:show="new" xlink:title="Bottom" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f18j9589feibzq)" height="48" id="C_0001646691079607377420" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="95" y="224"/>
<ellipse cx="110" cy="240" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M112.9688,245.6406 Q112.3906,245.9375 111.75,246.0781 Q111.1094,246.2344 110.4063,246.2344 Q107.9063,246.2344 106.5781,244.5938 Q105.2656,242.9375 105.2656,239.8125 Q105.2656,236.6875 106.5781,235.0313 Q107.9063,233.375 110.4063,233.375 Q111.1094,233.375 111.75,233.5313 Q112.4063,233.6875 112.9688,233.9844 L112.9688,236.7031 Q112.3438,236.125 111.75,235.8594 Q111.1563,235.5781 110.5313,235.5781 Q109.1875,235.5781 108.5,236.6563 Q107.8125,237.7188 107.8125,239.8125 Q107.8125,241.9063 108.5,242.9844 Q109.1875,244.0469 110.5313,244.0469 Q111.1563,244.0469 111.75,243.7813 Q112.3438,243.5 112.9688,242.9219 L112.9688,245.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="45" x="124" y="244.1543">Bottom</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="96" x2="171" y1="256" y2="256"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="96" x2="171" y1="264" y2="264"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00035/t00035.cc#L16" target="_top" title="Right" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/15bbb595b7602f0b746839016178c923d66c144b/tests/t00035/t00035.cc#L16" xlink:show="new" xlink:title="Right" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1h9xaqxfupk1u)" height="48" id="C_0000200121820090372322" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="205.5" y="116"/>
<a href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00035/t00035.cc#L12" target="_top" title="Right" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/fc3110fd4e8ffc431522b4acd11cb67e982d695a/tests/t00035/t00035.cc#L12" xlink:show="new" xlink:title="Right" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f18j9589feibzq)" height="48" id="C_0000200121820090372322" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="205.5" y="116"/>
<ellipse cx="220.5" cy="132" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M223.4688,137.6406 Q222.8906,137.9375 222.25,138.0781 Q221.6094,138.2344 220.9063,138.2344 Q218.4063,138.2344 217.0781,136.5938 Q215.7656,134.9375 215.7656,131.8125 Q215.7656,128.6875 217.0781,127.0313 Q218.4063,125.375 220.9063,125.375 Q221.6094,125.375 222.25,125.5313 Q222.9063,125.6875 223.4688,125.9844 L223.4688,128.7031 Q222.8438,128.125 222.25,127.8594 Q221.6563,127.5781 221.0313,127.5781 Q219.6875,127.5781 219,128.6563 Q218.3125,129.7188 218.3125,131.8125 Q218.3125,133.9063 219,134.9844 Q219.6875,136.0469 221.0313,136.0469 Q221.6563,136.0469 222.25,135.7813 Q222.8438,135.5 223.4688,134.9219 L223.4688,137.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="234.5" y="136.1543">Right</text>

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

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