Compare commits

...

589 Commits

Author SHA1 Message Date
Bartek Kryza
632e170ab4 Updated test cases documentation 2024-06-17 22:02:29 +02:00
Bartek Kryza
c45830f35a Updated CHANGELOG 2024-06-17 21:50:30 +02:00
Bartek Kryza
7c75f0e6d2 Updated context filter docs (#274) 2024-06-17 21:49:11 +02:00
Bartek Kryza
e7eadc03a2 Added context exclude filter with relationships option test case (#274) 2024-06-17 18:59:23 +02:00
Bartek Kryza
6952c3296d Added context filter relationships option (#274) 2024-06-13 21:35:11 +02:00
Bartek Kryza
db2bd0417a Extended context filter inward test case with nested class (#274) 2024-06-13 20:13:41 +02:00
Bartek Kryza
dca616328c Added test case for context filter outward direction (#274) 2024-06-13 18:55:30 +02:00
Bartek Kryza
30337c1aa3 Extended context filter inward test case to larger radius (#274) 2024-06-13 17:29:34 +02:00
Bartek Kryza
bd921822c2 Added relationship direction flag to context diagram filter (#274) 2024-06-13 14:19:56 +02:00
Bartek Kryza
7d859db15a Fixed unused-but-set-parameter in GCC 2024-06-10 21:35:43 +02:00
Bartek Kryza
7e29453cb4 Merge pull request #288 from bkryza/improve-test-coverage
Improve test coverage
2024-06-10 20:46:33 +02:00
Bartek Kryza
4f9a09783f Fixed building on MSVC (#287) 2024-06-10 20:09:13 +02:00
Bartek Kryza
fa742a03c4 Improved test coverage (#287) 2024-06-10 15:51:27 +02:00
Bartek Kryza
514c439413 Changed std::tmpnam (deprecated) to a custom random name generator in cli tests 2024-06-09 22:37:34 +02:00
Bartek Kryza
94f5f445ee Improved test coverage (#287) 2024-06-09 21:10:09 +02:00
Bartek Kryza
82846dcc27 Extended cli_handler test cases (#287) 2024-06-08 13:29:22 +02:00
Bartek Kryza
beba7d16b9 Added test case for sequence diagram with nested classes (#287) 2024-06-07 19:45:15 +02:00
Bartek Kryza
5de512ad0b Improved error logging (#284) 2024-06-07 00:25:03 +02:00
Bartek Kryza
a66bbff900 Merge pull request #286 from hatch01/master
packaging: add nixpkgs avalability and make wrapped script the default
2024-06-06 21:00:04 +02:00
eymeric
37334d54cc small nix packaging shell completion cleanup 2024-06-06 20:51:12 +02:00
eymeric
aec9d553dd packaging: now wrapped is the default for nix 2024-06-06 20:48:06 +02:00
eymeric
1393afc146 doc: add nix version info 2024-06-06 17:29:00 +02:00
eymeric
ed6b78022a doc: add nixpkgs avalability 2024-06-06 15:26:36 +02:00
Bartek Kryza
6a1322b04c Merge pull request #285 from bkryza/refactor-id_t 2024-06-06 00:14:26 +02:00
Bartek Kryza
cfea6d97e7 Fixed building on macos 2024-06-05 23:21:33 +02:00
Bartek Kryza
420475ab64 Renamed common::id_t to eid_t to avoid conflicts with system id_t 2024-06-05 22:01:13 +02:00
Bartek Kryza
2cf9d2f22a Added test case for common::id_t 2024-06-05 00:15:21 +02:00
Bartek Kryza
a6a92c3543 Updated to clang-tidy-17 2024-06-04 23:49:42 +02:00
Bartek Kryza
50851531f9 Fixed clang-tidy warnings 2024-06-04 22:50:53 +02:00
Bartek Kryza
1c9f347c91 Refactored id_t to types.cpp 2024-06-04 21:01:45 +02:00
Bartek Kryza
a69938f17f Fixed tests after initial refactor 2024-06-04 20:49:50 +02:00
Bartek Kryza
cf79b3184c Initial refactor of id_t to a separate class 2024-06-04 00:03:26 +02:00
Bartek Kryza
e21c2d2b14 Updated test cases documentation 2024-06-03 17:14:26 +02:00
Bartek Kryza
2e861ee3de Fixed handling of relationships to nested enums (#280) 2024-06-03 16:59:26 +02:00
Bartek Kryza
cbaf5f65a0 Updated test cases documentation 2024-06-01 19:23:16 +02:00
Bartek Kryza
ff7edef585 Fixed handling of multiple dimension arrays in class fields (#278) 2024-06-01 19:05:54 +02:00
Bartek Kryza
d599bb6715 Fixed handling of nested anonymous arrays of structs 2024-06-01 14:23:38 +02:00
Bartek Kryza
c9b3f92dbe Merge pull request #277 from pogobanane/dev/unnamed-undeclared
fix segfault in name for unnamed undeclared types
2024-06-01 14:11:47 +02:00
Pogobanane
3cff6593e6 fix name for unnamed undeclared types
type->getAsTagDecl() may return null, e.g. in the following example:

struct Foo {
  struct {
    uint64_t len;
    uint64_t flags;
  } __attribute__((packed)) bars[BARS];
  ...
};
2024-05-31 22:24:57 +00:00
Bartek Kryza
d385b87691 Merge pull request #276 from bkryza/fix-enums-in-context-filter
Fix enums in context filter
2024-05-31 19:46:21 +02:00
Bartek Kryza
8a1c551f14 Updated test cases documentation 2024-05-31 19:19:25 +02:00
Bartek Kryza
1283364ef4 Fixed handling of enums in class diagram context filter (#275) 2024-05-31 19:09:28 +02:00
Bartek Kryza
9ad5336d83 Added documentation about clang-uml-wrapped script for Nix 2024-05-30 21:22:59 +02:00
Bartek Kryza
a9e99c9787 Merge pull request #273 from pogobanane/master
Nix package: add wrapper to fix stdlib includes
2024-05-30 21:14:39 +02:00
Pogobanane
d82c2e4acf nix package: adjust wrapper for clang-uml 2024-05-28 14:22:42 +00:00
Pogobanane
57a681a626 nix package: add wrapper from nixpkgs#clang-tools 2024-05-28 12:18:08 +00:00
Bartek Kryza
aa62c4788c Merge pull request #272 from bkryza/refactor-tests
Refactor tests
2024-05-23 00:19:43 +02:00
Bartek Kryza
2eff7a1192 Updated test cases documentation 2024-05-22 22:48:33 +02:00
Bartek Kryza
a7e2f7a496 Fixed MessageChainsOrder test helper function for JSON 2024-05-22 22:14:28 +02:00
Bartek Kryza
5937061674 Fixed MessageChainsOrder test helper function 2024-05-21 23:38:16 +02:00
Bartek Kryza
e215725622 Adjusted test case generator to new test cases (#266) 2024-05-20 23:18:19 +02:00
Bartek Kryza
fbe416b50e Fixed formatting 2024-05-20 23:06:56 +02:00
Bartek Kryza
31100af689 Ported remaining tests from Catch to doctest (#266) 2024-05-20 22:32:10 +02:00
Bartek Kryza
387b46f683 Refactored sequence diagrams test cases (#266) 2024-05-20 21:56:54 +02:00
Bartek Kryza
4b5cfa7b48 Refactoring sequence diagrams test cases (#266) 2024-05-20 00:09:30 +02:00
Bartek Kryza
7c1e0420c6 Refactoring sequence diagrams test cases (#266) 2024-05-16 21:58:45 +02:00
Bartek Kryza
5d69f5063a Refactored config based test cases (#266) 2024-05-14 17:51:55 +02:00
Bartek Kryza
6d3d1ae450 Fixed building on LLVM < 14 (#266) 2024-05-14 17:27:34 +02:00
Bartek Kryza
27eaea5bbe Refactored class, package and include diagram test cases (#266) 2024-05-14 11:39:42 +02:00
Bartek Kryza
eeae5caef5 WIP 2024-05-13 15:51:45 +02:00
Bartek Kryza
235533d9fa WIP 2024-05-12 00:45:45 +02:00
Bartek Kryza
baeda78c7e Added doctest to thirdparty deps 2024-05-12 00:45:11 +02:00
Bartek Kryza
ee3ae341d3 Merge pull request #269 from bkryza/v0.5.2
V0.5.2
2024-05-05 12:30:51 +02:00
Bartek Kryza
cd6dce2b0b Fixed building on Fedora 40 2024-05-05 00:15:35 +02:00
Bartek Kryza
9f370ac8bd Added Ubuntu Noble Numbat config 2024-05-04 19:24:00 +02:00
Bartek Kryza
67da49df64 Updated test cases documentation 2024-05-04 19:11:29 +02:00
Bartek Kryza
7fcd0dc0dd Updated packaging instructions 2024-05-04 19:08:05 +02:00
Bartek Kryza
8905f05bad Updated version to 0.5.2 2024-05-04 17:27:57 +02:00
Bartek Kryza
f1677193ba Fixed generation of empty packages in class diagrams (Fixes #253) 2024-05-03 22:19:05 +02:00
Bartek Kryza
bf119aff74 Merge pull request #268 from bkryza/add-option-to-inline-lambdas
Add option to inline lambdas
2024-05-03 18:00:51 +02:00
Bartek Kryza
3495ce0039 Updated test cases documentation 2024-05-03 17:26:07 +02:00
Bartek Kryza
f05267997b Added test case for inlining nested lambda expressions (#261) 2024-05-03 17:22:33 +02:00
Bartek Kryza
ba4835b6bc Fixed clang-tidy warnings 2024-05-03 16:48:53 +02:00
Bartek Kryza
95d83345a5 Refactored sequence lambda inlining to diagram model (#261) 2024-05-03 15:12:05 +02:00
Bartek Kryza
fc25a9bd0e Updated CHANGELOG 2024-05-03 14:47:05 +02:00
Bartek Kryza
14a13b45aa Added option inline_lambda_messages to omit lambda expressions from sequence diagrams (#261) 2024-05-03 14:42:34 +02:00
Bartek Kryza
052d9b7ff3 Merge pull request #267 from bkryza/sequence-diagram-improvements
Sequence diagram improvements
2024-05-01 22:25:16 +02:00
Bartek Kryza
1a3d1c19cf Fixed cmake CUDA target defines 2024-05-01 21:27:33 +02:00
Bartek Kryza
35b66beeca Updated test cases documentation 2024-05-01 19:39:50 +02:00
Bartek Kryza
b574a41a64 Added test case for cuda_kernel and cuda_device callee types in callee_type filter (#263) 2024-05-01 19:01:25 +02:00
Bartek Kryza
67363013fe Added support for CUDA calls in sequence diagrams (#263) 2024-05-01 18:18:41 +02:00
Bartek Kryza
dfb4f38ded Fixed generation of internal clang-uml diagrams 2024-04-30 11:51:47 +02:00
Bartek Kryza
51c5b887a8 Added lambda operator() arguments to messages in sequence diagrams 2024-04-30 10:53:33 +02:00
Bartek Kryza
4293a6cc79 Improved handling of message call comments (#264) 2024-04-30 00:06:42 +02:00
Bartek Kryza
6c6575bc7f Added test case for call directive in sequence diagrams 2024-04-29 13:17:17 +02:00
Bartek Kryza
efc34bcec6 Fixed handling of nested lambda expressions in sequence diagrams 2024-04-28 01:14:01 +02:00
Bartek Kryza
0539fb0101 Fixed type aliases handling in sequence diagram message names (#260) 2024-04-27 10:43:15 +02:00
Bartek Kryza
9c07dbfde3 Added support for call expressions tracking through lambdas in function arguments (#168) 2024-04-26 19:26:32 +02:00
Bartek Kryza
88f315127c Merge pull request #262 from bkryza/fix-codecov
Reverted codecov to v3
2024-04-17 22:27:20 +02:00
Bartek Kryza
57d24da0df Reverted codecov to v3 2024-04-17 21:09:08 +02:00
Bartek Kryza
7317761670 Updated checkout GitHub action version 2024-04-17 19:57:12 +02:00
Bartek Kryza
87a1e876cc Updated codecov GitHub action version 2024-04-17 18:36:21 +02:00
Bartek Kryza
449729d54e Merge pull request #258 from hatch01/master
enable building with nix
2024-04-17 18:04:56 +02:00
eymeric
a61d719a69 doc: update build instruction for nix 2024-04-17 18:02:08 +02:00
eymeric
42c9fa4579 update build command to work without flake
Co-authored-by: uku <hi@uku.moe>
2024-04-17 09:52:38 +02:00
hatch01
0da2585c3f fix nix run link
Co-authored-by: Thomas Lepoix <thomas.lepoix@protonmail.ch>
2024-04-10 09:50:58 +02:00
eymeric
8e24a2cb63 cleanup nix
Co-authored-by: uku <hi@uku.moe>
2024-04-09 18:21:40 +02:00
eymeric
e3fd1382e9 enable building with nix 2024-04-08 22:47:59 +02:00
Bartek Kryza
31d8f4d773 Fixed MSVC build with LLVM 18 2024-03-12 23:10:22 +01:00
Bartek Kryza
0fac87c27a Merge pull request #252 from bkryza/fix-building-with-llvm18
Fixed building with LLVM 18 (#251)
2024-03-08 00:01:18 +01:00
Bartek Kryza
06ada3af55 Fixed building with LLVM 18 (#251) 2024-03-07 23:10:46 +01:00
Bartek Kryza
97b094f77e Merge pull request #250 from bkryza/v0.5.1
V0.5.1
2024-03-06 22:21:30 +01:00
Bartek Kryza
9e689b55f0 Fixed building on macos 2024-03-06 20:25:04 +01:00
Bartek Kryza
ec9d28fd42 Updated test cases documentation 2024-03-06 18:55:42 +01:00
Bartek Kryza
87ef029249 Updated highlight.js to 11.9.0 2024-03-06 18:53:50 +01:00
Bartek Kryza
d0a9f0c317 Updated version to 0.5.1 2024-03-06 18:20:05 +01:00
Bartek Kryza
9d2a1252c9 Updated CHANGELOG 2024-03-06 18:06:46 +01:00
Bartek Kryza
8499eecd27 Updated test cases documentation 2024-03-06 18:05:54 +01:00
Bartek Kryza
b8a649ff93 Updated clang-uml diagrams 2024-03-06 17:53:29 +01:00
Bartek Kryza
fdea7f5852 Added test case for elements filter in sequence diagrams (#248) 2024-03-06 17:39:42 +01:00
Bartek Kryza
6facb386bb Fixed handling of elements filter in sequence diagrams (#248) 2024-03-06 17:39:04 +01:00
Bartek Kryza
812979779b Fixed issues in docs 2024-03-05 17:36:48 +01:00
Bartek Kryza
ba9e435786 Updated autocomplete scripts 2024-03-04 22:44:10 +01:00
Bartek Kryza
2967d27de8 Updated CHANGELOG 2024-03-04 22:25:09 +01:00
Bartek Kryza
b057407809 Fixed progress indicators ranges with multiple commands per TU (#240) 2024-03-04 22:17:58 +01:00
Bartek Kryza
51a9242b49 Removed very slow and unnecessary clang-tidy checks 2024-03-04 20:34:42 +01:00
Bartek Kryza
baef768f6c Added default diagram generation error for empty diagrams (#246) 2024-03-04 19:56:12 +01:00
Bartek Kryza
cb44c3ded4 Merge pull request #247 from bkryza/improve-arrows-and-template-rendering
Improve arrows and template rendering
2024-03-04 12:59:21 +01:00
Bartek Kryza
8f6a56d9bc Updated test cases documentation 2024-03-04 12:33:29 +01:00
Bartek Kryza
6cf8c0a995 Fixed clang-tidy warnings 2024-03-03 23:42:52 +01:00
Bartek Kryza
76fa811869 Added option style to plantuml config section 2024-03-03 17:01:50 +01:00
Bartek Kryza
c4ec8bef8a Added generate_concept_requirements config option (#237) 2024-02-27 22:36:41 +01:00
Bartek Kryza
52b72f38c5 Merge pull request #245 from bkryza/refactor-util-pipe-handling
Refactored util pipe handling (#244)
2024-02-27 00:50:19 +01:00
Bartek Kryza
674441f3cd Fixed error when running clang-uml outside of a Git repository 2024-02-27 00:18:06 +01:00
Bartek Kryza
40194eb9b5 Refactored util pipe handling (#244) 2024-02-26 23:15:31 +01:00
Bartek Kryza
a404a3070d Fix handling of query_driver option in config file (#243) 2024-02-23 21:33:23 +01:00
Bartek Kryza
c5e3b7e71d Merge pull request #241 from bkryza/fix-handling-of-variadic-template-functions-in-sequence-diagrams
Fix handling of variadic template functions in sequence diagrams
2024-02-14 00:40:46 +01:00
Bartek Kryza
eedf594c7a Updated test cases documentation 2024-02-14 00:17:47 +01:00
Bartek Kryza
5630149016 Fixed clang-tidy warnings 2024-02-13 23:42:27 +01:00
Bartek Kryza
d305902e3c Added variable template base class overload pattern class diagram test case 2024-02-13 00:05:07 +01:00
Bartek Kryza
09e1812509 Added variable template base class overload pattern sequence diagram test case 2024-02-12 00:23:54 +01:00
Bartek Kryza
3af55f1e78 Added variadic class template recursive call sequence diagram 2024-02-11 23:52:52 +01:00
Bartek Kryza
7f25fa58f5 Continued refactor of template building code to template_builder 2024-02-11 19:33:22 +01:00
Bartek Kryza
251857e9c4 Added class translation unit visitor detailed diagram 2024-02-08 20:16:17 +01:00
Bartek Kryza
14105422b4 Merge pull request #235 from bkryza/v0.5.0
V0.5.0
2024-01-28 23:58:18 +01:00
Bartek Kryza
10dae021e1 Updated test cases documentation 2024-01-28 22:16:37 +01:00
Bartek Kryza
20093b9b1c Updated version to 0.5.0 2024-01-28 21:28:13 +01:00
Bartek Kryza
6db5970b80 Merge pull request #234 from bkryza/fix-static-linking-llvm-12
Fix static LLVM linking (#225)
2024-01-28 20:47:59 +01:00
Bartek Kryza
6226b31ea4 Fix static LLVM linking (#225) 2024-01-28 20:02:29 +01:00
Bartek Kryza
875bf16621 Merge pull request #233 from bkryza/fix-glob-absolute-paths
Fixed handling of absolute paths in glob patterns
2024-01-28 17:11:53 +01:00
Bartek Kryza
7d28be525f Fixed glob absolute paths handling on Windows 2024-01-28 15:55:59 +01:00
Bartek Kryza
3dba31a792 Fixed handling of absolute paths in glob patterns 2024-01-28 13:12:07 +01:00
Bartek Kryza
334140b73c Merge pull request #232 from bkryza/refactor-sequence-tuvisitor-template-building
Refactor sequence tuvisitor template building
2024-01-25 11:11:52 +01:00
Bartek Kryza
ddb604a218 Updated test cases documentation 2024-01-25 10:46:41 +01:00
Bartek Kryza
757b4d0947 Fixed type aliases handling 2024-01-25 01:23:34 +01:00
Bartek Kryza
9376b856cc Fixed template specialization handling in subclass filter 2024-01-22 09:50:47 +01:00
Bartek Kryza
25adff0080 Extended sequence diagram config type alias test case (#227) 2024-01-15 23:00:13 +01:00
Bartek Kryza
16195bfa62 Refactored template_builder to common namespace (#227) 2024-01-14 13:38:23 +01:00
Bartek Kryza
100f7c88ad Merge pull request #228 from bkryza/add-coroutine-testcase
Add coroutine testcase
2024-01-11 17:10:25 +01:00
Bartek Kryza
2006d62d4d Fixed building on MSVC 2024-01-11 16:32:03 +01:00
Bartek Kryza
555d0da4f6 Fixed building on macos 2024-01-11 15:22:09 +01:00
Bartek Kryza
fb2edd51aa Updated test cases documentation 2024-01-11 13:00:45 +01:00
Bartek Kryza
3fcb00e8eb Updated docs on C++20 modules 2024-01-11 12:20:27 +01:00
Bartek Kryza
97719e46fc Enabled type_aliases config option for sequence diagrams (#224) 2024-01-11 11:26:57 +01:00
Bartek Kryza
79971d67e8 Documentation fix (#226) 2024-01-10 10:39:30 +01:00
Bartek Kryza
66dcf1ed5d Added is_system header file property to JSON include diagram generator 2024-01-09 22:14:38 +01:00
Bartek Kryza
043c13affb Fixed module handling on LLVM versions < 15.0.0 2024-01-09 11:49:29 +01:00
Bartek Kryza
d8a49f4ac5 Updated copyright header 2024-01-02 23:19:46 +01:00
Bartek Kryza
da7870f50f Fixed clang-tidy warnings 2024-01-02 23:17:50 +01:00
Bartek Kryza
eec73a79e8 Updated CHANGELOG 2024-01-01 21:49:52 +01:00
Bartek Kryza
7ef684c2cf Updated test cases documentation 2024-01-01 21:44:37 +01:00
Bartek Kryza
9d73c9e3ff Refactored and unified JSON generators output (#223) 2024-01-01 21:34:38 +01:00
Bartek Kryza
edfaabd4fa Added class diagram test case with C++20 module partitions 2023-12-25 20:58:19 +01:00
Bartek Kryza
637112cea5 Added package diagram test case with C++20 module partitions dependencies 2023-12-24 16:47:56 +01:00
Bartek Kryza
453f265feb Added package diagram test case with C++20 module partitions 2023-12-23 19:24:08 +01:00
Bartek Kryza
bf7b69bcca Updated test cases documentation 2023-12-22 22:30:06 +01:00
Bartek Kryza
3671bf9beb Fixed modules formatting 2023-12-22 21:26:34 +01:00
Bartek Kryza
913ccb6bdf Added test case for package diagram from modules dependencies 2023-12-22 21:25:11 +01:00
Bartek Kryza
a8d646d1bc Added package diagram generation from C++20 modules (#101) 2023-12-21 23:40:15 +01:00
Bartek Kryza
f09edd8b47 Added module_access diagram filter (#101) 2023-12-19 22:21:03 +01:00
Bartek Kryza
c51ae5b6ee Added support for C++20 module based packages in class diagrams (#101) 2023-12-18 22:33:27 +01:00
Bartek Kryza
ea6892f754 Added support for class diagram filtering based on C++20 modules (#195) 2023-12-17 21:10:05 +01:00
Bartek Kryza
f2fe1ca2cf Added support for C++20 coroutines in class diagrams (#221) 2023-12-15 20:01:18 +01:00
Bartek Kryza
13f2ffb706 Merge pull request #220 from bkryza/fix-source-location-extraction-on-windows
Fix manual parsing of Windows source location paths (#217)
2023-12-15 15:20:53 +01:00
Bartek Kryza
4da14a32d7 Fix manual parsing of Windows source location paths (#217) 2023-12-14 19:43:37 +01:00
Bartek Kryza
7be848b8a1 Merge pull request #219 from bkryza/fix-progress-indicators-msvc
Fixed progress indicator characters on Windows (#218)
2023-12-12 14:31:20 +01:00
Bartek Kryza
66534af3fc Fixed progress indicator characters on Windows (#218) 2023-12-12 12:03:11 +01:00
Bartek Kryza
8ae47dd766 Fixed linking with LLVM17 on MSVC 2023-12-11 20:35:35 +01:00
Bartek Kryza
079758e154 Merge pull request #216 from bkryza/v0.4.2
V0.4.2
2023-12-11 14:07:50 +01:00
Bartek Kryza
11c0305119 Enable building Ubuntu debug symbol packages 2023-12-11 12:37:55 +01:00
Bartek Kryza
72013f8725 Releasing 0.4.2 2023-12-11 09:33:43 +01:00
Bartek Kryza
44c1a6cae4 Fixed test_config on macos 2023-12-10 21:24:39 +01:00
Bartek Kryza
a6962866d6 Merge pull request #215 from bkryza/fix-docs-typos
Improved docs (#208)
2023-12-10 21:12:14 +01:00
Bartek Kryza
da6001728b Improved docs (#208) 2023-12-10 21:10:51 +01:00
Bartek Kryza
c0faeccff9 Merge pull request #214 from bkryza/fix-t00014
Fix t00014
2023-12-10 16:35:36 +01:00
Bartek Kryza
15f8161f72 Updated test cases documentation 2023-12-10 15:03:47 +01:00
Bartek Kryza
cea427e32d Fixed link generation for template specializations 2023-12-10 13:51:45 +01:00
Bartek Kryza
85ffe2cdee Updated test case generator template 2023-12-09 20:17:36 +01:00
Bartek Kryza
0a8292655a Updated test cases documentation 2023-12-09 20:16:28 +01:00
Bartek Kryza
6055c5684e Fixed handling of relative paths on MSVC 2023-12-09 20:09:44 +01:00
Bartek Kryza
a1f7769ba5 Simplified test cases configs 2023-12-09 17:35:39 +01:00
Bartek Kryza
d7195d5a5d Refactored handling of relative paths (#213) 2023-12-09 12:04:06 +01:00
Bartek Kryza
f1d3695ccc Fixed t00014 on macos (Fixes #176) 2023-12-05 23:46:28 +01:00
Bartek Kryza
9280edfafb Merge pull request #212 from bkryza/fix-make-clangumldiagrams-on-macos
Fixed building clanguml internal diagrams on macos (#210)
2023-12-04 10:11:31 +01:00
Bartek Kryza
011d5e5fec Fixed building clanguml internal diagrams on macos (#210) 2023-12-03 23:47:19 +01:00
Bartek Kryza
4ff42d032f Fix clang-uml version detection CMake macro (#211) 2023-11-14 18:13:00 +01:00
Bartek Kryza
f3a0d98ee6 Merge pull request #209 from bkryza/add-option-to-render-diagrams-after-generation
Add option to render diagrams after generation
2023-11-13 22:42:22 +01:00
Bartek Kryza
4c1cd3578f Updated autocomplete scripts 2023-11-13 22:20:14 +01:00
Bartek Kryza
146c79ac54 Fixed building on msvc 2023-11-13 21:25:04 +01:00
Bartek Kryza
15a32bdc4c Fixed building on macos 2023-11-13 00:23:04 +01:00
Bartek Kryza
7d607848cc Fixed clang-tidy warnings 2023-11-12 23:32:31 +01:00
Bartek Kryza
35f45a07e6 Added options to render diagrams using plantuml and mermaidjs external tools 2023-11-12 23:05:51 +01:00
Bartek Kryza
429e1c47a9 Improve CMake yaml-cpp-detection (#206) 2023-11-11 17:22:20 +01:00
Bartek Kryza
19233e3a62 Merge pull request #207 from bkryza/add-radius-parameter-to-context-filter 2023-11-11 00:37:47 +01:00
Bartek Kryza
3a8438b56e Trigger GA build 2023-11-10 23:38:59 +01:00
Bartek Kryza
1b53dc2a01 Updated test cases documentation 2023-11-10 23:29:25 +01:00
Bartek Kryza
39d3e1f0b0 Added test case for context filter with radius option 2023-11-10 23:23:25 +01:00
Bartek Kryza
055897f11b Extended context filter config schema to accept optional radius parameter 2023-11-09 23:39:56 +01:00
Bartek Kryza
237ef26389 Initial implementation of radius parameter in context filter 2023-11-08 23:42:44 +01:00
Bartek Kryza
205d6de060 Merge pull request #202 from bkryza/improve-llvm-detection-in-cmake
Refactored LLVM paths detection based on llvm-config binary
2023-11-04 18:53:39 +01:00
Bartek Kryza
1fe8640f7c Fixed Doxygen generation rules 2023-11-04 18:31:04 +01:00
Bartek Kryza
15233aa0da Refactored LLVM paths detection based on llvm-config binary 2023-11-04 17:34:55 +01:00
Bartek Kryza
5435f0ac30 Merge pull request #200 from bkryza/fix-gcc13-build
Ignore Wdangling-reference warnings on GCC 13
2023-10-25 14:03:12 +02:00
Bartek Kryza
7cf61a98aa Ignore Wdangling-reference warnings on GCC 13 2023-10-25 14:02:35 +02:00
Bartek Kryza
79801b2936 Fix handling of template template arguments which are not expressions (#199) 2023-10-24 18:29:47 +02:00
Bartek Kryza
57bc2f7309 Merge pull request #198 from bkryza/v0.4.1
V0.4.1
2023-10-22 19:46:41 +02:00
Bartek Kryza
a731d3b94c Updated test cases documentation 2023-10-22 19:10:32 +02:00
Bartek Kryza
7328987985 Fix building of Ubuntu Focal package 2023-10-22 17:16:19 +02:00
Bartek Kryza
29ad94a13c Added autocomplete scripts to Fedora packages 2023-10-22 16:34:23 +02:00
Bartek Kryza
ad4363acaa Added autocomplete scripts to Ubuntu packages 2023-10-22 14:40:24 +02:00
Bartek Kryza
ce754086ee Merge pull request #197 from bkryza/add-message-comments-in-sequence-diagrams
Add message comments in sequence diagrams
2023-10-21 22:21:07 +02:00
Bartek Kryza
83ea9256a1 Updated test cases documentation 2023-10-21 21:58:45 +02:00
Bartek Kryza
701b2c5113 Updated changelog 2023-10-21 21:55:59 +02:00
Bartek Kryza
0d237fec0a Added support for call comment directive to inject calls in comments (Fixes #196) 2023-10-21 21:47:26 +02:00
Bartek Kryza
4f43253c0d Fixed clang-tidy warnings 2023-10-21 18:37:53 +02:00
Bartek Kryza
097beb830f Updated test cases documentation 2023-10-21 17:27:11 +02:00
Bartek Kryza
03ac2121bc Updated docs 2023-10-21 17:24:48 +02:00
Bartek Kryza
7f595b1c54 Added handling of comment decorators (skip, note) in sequence diagram comments (#194) 2023-10-21 17:08:27 +02:00
Bartek Kryza
ddbfffbf23 Added message comments to json and mermaid generators 2023-10-17 22:21:48 +02:00
Bartek Kryza
dd940991dc Added message_comment_width config option 2023-10-16 22:10:44 +02:00
Bartek Kryza
1616f79ceb Improved sequence diagram message comment formatting 2023-10-16 21:48:02 +02:00
Bartek Kryza
03e8c867f4 Added generate_message_comments configuration option 2023-10-15 19:59:26 +02:00
Bartek Kryza
c4d3d61770 Updated changelog 2023-10-14 22:23:43 +02:00
Bartek Kryza
600d1847c8 Updated autocompletion docs (Fixes #193) 2023-10-14 22:21:25 +02:00
Bartek Kryza
46649e8084 Added bash autocomplete script 2023-10-14 22:19:19 +02:00
Bartek Kryza
621e417e0e Added zsh autocomplete script 2023-10-14 21:16:22 +02:00
Bartek Kryza
20e7cee28e Merge pull request #192 from bkryza/llvm-17-support 2023-10-13 20:02:58 +02:00
Bartek Kryza
a7b4efa80e Fix diagram generation using LLVM 17 (Fixes #190) 2023-10-13 18:46:30 +02:00
Bartek Kryza
e7d6c94a14 Removed redundant requirement for std::regex::multiline (Fixes #191) 2023-10-13 18:46:02 +02:00
Bartek Kryza
f339c34dd8 Enabled building against LLVM 17 2023-10-13 11:49:59 +02:00
Bartek Kryza
26abb71b4c Fix handling of compile_commands.json files with relative include paths (Fixes #189) 2023-10-12 17:08:25 +02:00
Bartek Kryza
8865a42ff0 Change std::same_as to std::is_same_v to maintain C++17 compatibility (Fixes #188) 2023-10-12 11:13:00 +02:00
Bartek Kryza
13a1012e96 Merge pull request #187 from bkryza/remove-package-dependencies-for-parent-packages 2023-10-10 23:31:04 +02:00
Bartek Kryza
92422624cb Skip dependencies between parent and child packages in package diagrams (Fixes #186) 2023-10-10 22:29:23 +02:00
Bartek Kryza
9d43281bdd Excluded package diagram relationships to rejected packages (#185) 2023-10-10 12:19:31 +02:00
Bartek Kryza
c398c6ffda Updated CHANGELOG 2023-10-09 17:56:27 +02:00
Bartek Kryza
1983a609a0 Merge pull request #184 from bkryza/add-title-property
Added 'title' diagram property
2023-10-09 16:05:36 +02:00
Bartek Kryza
8a6b497cc9 Added 'title' diagram property 2023-10-09 13:53:55 +02:00
Bartek Kryza
03bd5ada31 Removed unnecessary verbose logs 2023-10-09 11:18:32 +02:00
Bartek Kryza
fc6a63490b Merge pull request #183 from bkryza/handle-singleton-constructors
Handle singleton constructors
2023-10-08 18:14:52 +02:00
Bartek Kryza
fda50ae211 Dummy commit to trigger GitHub Actions 2023-10-08 17:43:00 +02:00
Bartek Kryza
747aca8597 Updated test cases documentation 2023-10-08 17:24:30 +02:00
Bartek Kryza
4ab0d29252 Make sure sequence diagram messages generated during static variable initialization are rendered only once 2023-10-08 16:55:42 +02:00
Bartek Kryza
9d08942a62 Merge pull request #180 from bkryza/v0.4.0
V0.4.0
2023-09-13 22:38:15 +02:00
Bartek Kryza
31ed8059e4 Updated test cases documentation 2023-09-13 21:30:16 +02:00
Bartek Kryza
7e3f7dcf06 Updated version to 0.4.0 2023-09-13 21:24:13 +02:00
Bartek Kryza
8eaa7869eb Merge pull request #179 from bkryza/add-mermaid-js
Add MermaidJS support.
2023-09-13 21:18:36 +02:00
Bartek Kryza
7b41295b07 Fixed building on MSVC 2023-09-13 20:48:31 +02:00
Bartek Kryza
509358b88f Updated test cases documentation 2023-09-13 20:07:10 +02:00
Bartek Kryza
7e22b0b682 Updated docs 2023-09-13 19:50:08 +02:00
Bartek Kryza
627c2e5cbe Fixed clanguml_diagrams target 2023-09-13 19:47:34 +02:00
Bartek Kryza
abd85534bc Updated docs with Mermaid docs 2023-09-13 18:54:23 +02:00
Bartek Kryza
70e7088823 Fixed clang-tidy warnings 2023-09-13 17:17:48 +02:00
Bartek Kryza
a99e987d3b Added mermaid test cases for include diagrams 2023-09-13 16:16:22 +02:00
Bartek Kryza
9872e2d225 Added mermaid test cases for package diagrams 2023-09-13 00:25:08 +02:00
Bartek Kryza
57af380dfa Added mermaid test cases for sequence diagrams 2023-09-12 23:05:09 +02:00
Bartek Kryza
59180efebf Fixed friend relationship generation in mermaid class diagram generator 2023-09-12 20:22:10 +02:00
Bartek Kryza
7c70ab69ad Fixed generation of test cases for diagram notes in mermaid class diagrams 2023-09-12 09:03:50 +02:00
Bartek Kryza
eb00cd21c3 Added mermaid test cases for class diagrams 2023-09-12 00:55:20 +02:00
Bartek Kryza
de5625a474 Fixed Mermaid SVG image width attribute 2023-09-10 13:26:58 +02:00
Bartek Kryza
bf29ceb2df Updated test cases documentation 2023-09-10 12:22:27 +02:00
Bartek Kryza
4a19c8ba23 Fixed mermaid verbatim directives handling 2023-09-10 12:14:41 +02:00
Bartek Kryza
9a6def801c Updated docs generation scripts 2023-09-10 00:03:47 +02:00
Bartek Kryza
2cc70bcd7e Fixed clang-tidy warnings 2023-09-09 20:46:29 +02:00
Bartek Kryza
ae40a3b184 Added mermaid generator cli option 2023-09-09 19:00:21 +02:00
Bartek Kryza
0a542a954b Added link generation in mermaid diagram generator 2023-09-09 18:42:04 +02:00
Bartek Kryza
cfc0a42320 Added initial support for MermaidJS include diagrams 2023-09-09 01:46:24 +02:00
Bartek Kryza
ee998e7a38 Added initial support for MermaidJS package diagrams 2023-09-09 00:18:24 +02:00
Bartek Kryza
32fda88852 Added initial support for MermaidJS sequence diagram 2023-09-08 00:30:19 +02:00
Bartek Kryza
084bb20ef7 First working version of Mermaid class diagram generator 2023-09-06 21:21:12 +02:00
Bartek Kryza
6822930a12 Initial mermaid class diagram support 2023-09-05 00:04:05 +02:00
Bartek Kryza
e8235805f8 Merge pull request #177 from bkryza/v0.3.9
v0.3.9
2023-09-02 17:46:29 +02:00
Bartek Kryza
e980816688 Updated docs toc 2023-09-02 16:27:24 +02:00
Bartek Kryza
4b3f3b9df3 Bumped version to 0.3.9 2023-09-02 16:17:56 +02:00
Bartek Kryza
a45fffdb67 Updated config schema to handle git revisions that parse as int 2023-09-02 16:12:00 +02:00
Bartek Kryza
85856426f3 Fixed message chain equality comparison 2023-09-02 12:59:10 +02:00
Bartek Kryza
de9f614cb0 Bumped version to 0.3.9 2023-09-01 21:05:36 +02:00
Bartek Kryza
9ebd5f24d5 Added missing Makefile install target (#175) 2023-09-01 14:19:30 +02:00
Bartek Kryza
87982ab114 Added missing concepts header (#175) 2023-09-01 13:40:34 +02:00
Bartek Kryza
3bf43bbc51 Merge pull request #174 from bkryza/add-from-to-sequence-diagram-conditions
Add from to sequence diagram conditions
2023-09-01 00:35:43 +02:00
Bartek Kryza
13aa1d7b43 Updated changelog 2023-09-01 00:09:04 +02:00
Bartek Kryza
0ecb798225 Updated clang-uml diagrams configs 2023-08-31 23:56:33 +02:00
Bartek Kryza
d044f7f17f Updated test cases documentation 2023-08-31 23:43:57 +02:00
Bartek Kryza
e830195fb7 Changed 'start_from' to simply 'from' in sequence diagrams 2023-08-31 23:26:53 +02:00
Bartek Kryza
51e0275db3 Added '--print-to' cli option to print all possible 'to' constraints in sequence diagrams 2023-08-31 22:28:25 +02:00
Bartek Kryza
1bd60b71ec Updated test cases documentation 2023-08-30 23:31:44 +02:00
Bartek Kryza
c472792ed8 Added 'to' sequence diagram generator for plantuml and json 2023-08-30 23:04:52 +02:00
Bartek Kryza
4bce1888bf Updated test cases documentation 2023-08-30 00:19:11 +02:00
Bartek Kryza
cdc3659c17 Added from_to test case with free functions 2023-08-30 00:01:59 +02:00
Bartek Kryza
08520af10c Extended t20034 test case with json generator test 2023-08-29 23:25:49 +02:00
Bartek Kryza
18bf00d1dd Fixed clang-tidy warnings 2023-08-27 22:20:54 +02:00
Bartek Kryza
519677a904 Fixed plantuml sequence diagram from_to entry points 2023-08-27 19:21:00 +02:00
Bartek Kryza
bd19fe5bfb Added from_to sequence diagram generator for json 2023-08-27 19:03:43 +02:00
Bartek Kryza
ae55b7c054 Added from_to sequence diagram generator for plantuml 2023-08-27 17:48:52 +02:00
Bartek Kryza
8a362c3c7a Added from_to test case 2023-08-26 23:48:38 +02:00
Bartek Kryza
d00ca79241 Add from_to config option 2023-08-13 18:52:33 +02:00
Bartek Kryza
ecf07b98c0 Updated test cases documentation 2023-08-06 21:50:20 +02:00
Bartek Kryza
fd06d93afb Fixed else if statement generation in sequence diagrams (Fixes #81) 2023-08-06 21:38:33 +02:00
Bartek Kryza
39be6014ed Updated internal UML configs 2023-08-06 12:35:17 +02:00
Bartek Kryza
ad7a1c2513 Merge pull request #172 from bkryza/add-skipping-redundant-deps
Add skipping redundant deps
2023-08-05 20:42:57 +02:00
Bartek Kryza
66612fb244 Updated CHANGELOG 2023-08-05 19:52:23 +02:00
Bartek Kryza
301d424fce Updated test cases documentation 2023-08-05 19:34:03 +02:00
Bartek Kryza
2e1013c12f Added option to skip redundant dependency relationships 2023-08-05 19:06:00 +02:00
Bartek Kryza
f6efb7941f Added option to exclude dependencies from template arguments (Fixes #141) 2023-08-02 00:04:11 +02:00
Bartek Kryza
c119a622fa Refactored generator inheritance hierarchy 2023-08-01 00:53:41 +02:00
Bartek Kryza
eded9f4292 Fixed template API warning 2023-07-24 19:41:04 +02:00
Bartek Kryza
9df58ca251 Merge pull request #171 from bkryza/add-configuration-file-validation
Add configuration file validation
2023-07-23 18:59:12 +02:00
Bartek Kryza
bcd32bfd41 Fixed building on MSVC 2023-07-23 18:34:03 +02:00
Bartek Kryza
366bb19912 Minor configuration schema updates 2023-07-23 17:07:22 +02:00
Bartek Kryza
18c4031047 Added schema validation command line flags 2023-07-23 13:12:17 +02:00
Bartek Kryza
ec0079d876 Added include/exclude filter specification to validator schema 2023-07-23 01:22:14 +02:00
Bartek Kryza
8dc0dacd3f Added initial configuration file schema validation 2023-07-22 18:39:07 +02:00
Bartek Kryza
97efbbb332 Added miroir yaml validation library 2023-07-22 18:36:37 +02:00
Bartek Kryza
561a2b16fd Merge pull request #170 from bkryza/v0.3.8
V0.3.8
2023-07-09 17:28:19 +02:00
Bartek Kryza
f50ea3f2c9 Updated clang-uml diagrams config 2023-07-09 16:57:21 +02:00
Bartek Kryza
ff5184da51 Fixed building on Fedora 38 2023-07-09 16:08:00 +02:00
Bartek Kryza
1e305ae4e2 Updated test cases documentation 2023-07-09 14:38:31 +02:00
Bartek Kryza
fb370adbfd Improved documentation 2023-07-09 12:58:03 +02:00
Bartek Kryza
a6b48a99fd Updated version to 0.3.8 2023-07-09 11:11:58 +02:00
Bartek Kryza
a10bf6ba9f Updated changelog 2023-07-09 11:07:53 +02:00
Bartek Kryza
0fd0d97786 Updated docs 2023-07-05 22:39:19 +02:00
Bartek Kryza
51e31b4bf7 Added option --print-start-from to list all possible 'start_from' values (fixes #94) 2023-07-05 22:12:01 +02:00
Bartek Kryza
e6202d4e5a Updated test cases documentation 2023-07-05 00:35:11 +02:00
Bartek Kryza
3bd8f7f7a8 Added option to include if and loop condition text in the diagram (fixes #162) 2023-07-05 00:31:34 +02:00
Bartek Kryza
a514532e51 Updated test cases documentation 2023-07-04 01:02:59 +02:00
Bartek Kryza
2104d930a8 Added option to enable rendering return types in sequence diagrams (fixes #93) 2023-07-04 00:50:47 +02:00
Bartek Kryza
d944a2cead Merge pull request #169 from bkryza/add-support-for-method-type-filter-in-sequence-diagrams
Add support for method type filter in sequence diagrams
2023-07-02 19:02:26 +02:00
Bartek Kryza
7576816f42 Updated test cases documentation 2023-07-02 18:31:33 +02:00
Bartek Kryza
ed88fcd39d Added sequence diagram model cleanup step to remove empty block statements 2023-07-02 18:17:06 +02:00
Bartek Kryza
9ada158828 Removed deprecated diagram configs from .clang-uml 2023-07-02 00:08:00 +02:00
Bartek Kryza
1d2f83127f Removed dead code 2023-07-01 23:54:09 +02:00
Bartek Kryza
fb3283d9c7 Updated test cases documentation 2023-07-01 23:48:45 +02:00
Bartek Kryza
e50a7b1846 Added callee_filter for including/excluding messages based on receiver type (#152) 2023-07-01 23:46:02 +02:00
Bartek Kryza
213483dd3b Added support for constructors and operators in sequence diagrams 2023-06-29 00:35:57 +02:00
Bartek Kryza
9e7b147244 Updated test cases documentation 2023-06-26 17:11:36 +02:00
Bartek Kryza
8d1bac0af4 Merge pull request #165 from bkryza/fix-method-links
Fix method links
2023-06-26 16:59:13 +02:00
Bartek Kryza
13ea67c1d8 Updated test cases documentation 2023-06-26 16:15:55 +02:00
Bartek Kryza
ed151f45e1 Fixed class method links in PlantUML diagrams 2023-06-26 16:15:10 +02:00
Bartek Kryza
ef753eaaff Merge pull request #163 from bkryza/add-doxygen-config
Add doxygen config
2023-06-25 18:45:24 +02:00
Bartek Kryza
46b8c29907 Update Doxygen docs for util namespace 2023-06-25 17:53:21 +02:00
Bartek Kryza
f1250e5780 Update Doxygen docs for sequence_diagram namespace 2023-06-25 12:48:32 +02:00
Bartek Kryza
c0b0af1bda Added Doxygen footer 2023-06-25 12:46:53 +02:00
Bartek Kryza
06045cee21 Updated docs 2023-06-24 21:57:55 +02:00
Bartek Kryza
c49517925e Update Doxygen docs for package_diagram namespace 2023-06-24 20:53:58 +02:00
Bartek Kryza
d594f79155 Update Doxygen docs for include_diagram namespace 2023-06-24 20:05:24 +02:00
Bartek Kryza
e1b7d67c71 Update Doxygen docs for decorators namespace 2023-06-24 18:22:10 +02:00
Bartek Kryza
935d25c8f4 Update Doxygen docs for class_diagram namespace 2023-06-24 17:24:06 +02:00
Bartek Kryza
627a9fe1a8 Disbaled dark mode in HTML Doxygen docs style 2023-06-24 17:23:27 +02:00
Bartek Kryza
6c6384e5fd Fixed clang-tidy warnings 2023-06-23 20:46:43 +02:00
Bartek Kryza
525b3f74a6 Updated docs links 2023-06-23 19:54:30 +02:00
Bartek Kryza
321fb177a9 Updated code for Doxygen documentation 2023-06-23 19:39:41 +02:00
Bartek Kryza
d8ef12d1c6 Added Doxygen documentation 2023-06-23 19:38:28 +02:00
Bartek Kryza
a39af67987 Fixed comment_parser option handling 2023-06-21 00:51:39 +02:00
Bartek Kryza
fb348fbaa1 Updated Doxygen docs 2023-06-19 23:25:31 +02:00
Bartek Kryza
6dd4089c8d Added initial Doxygen config 2023-06-18 23:41:48 +02:00
Bartek Kryza
7575147b71 Fixed @file doxygen links 2023-06-18 23:40:13 +02:00
Bartek Kryza
f424ed4c8c Added doxygen comments to common namespace 2023-06-18 20:23:44 +02:00
Bartek Kryza
da2cb63ab3 Added initial Doxygen config 2023-06-18 01:18:35 +02:00
Bartek Kryza
031235bf49 Updated troubleshooting 2023-06-16 16:46:37 +02:00
Bartek Kryza
d8aa955455 Merge pull request #159 from bkryza/add-progress-indicators
Add progress indicators
2023-06-15 22:54:14 +02:00
Bartek Kryza
94b1d51ca8 Fixed building on Windows 2023-06-15 22:28:29 +02:00
Bartek Kryza
8c4e48d511 Fixed clang-tidy warnings 2023-06-15 21:41:22 +02:00
Bartek Kryza
930ffb3468 Updated README 2023-06-15 21:07:12 +02:00
Bartek Kryza
408416020f Added --progress option for diagram progress indicators 2023-06-15 00:24:55 +02:00
Bartek Kryza
c387aba82e Added indicators library v2.3 2023-06-14 01:19:11 +02:00
Bartek Kryza
2cfff608d8 Updated README logo link 2023-06-14 00:22:21 +02:00
Bartek Kryza
3261838af8 Updated log levels 2023-06-12 20:29:11 +02:00
Bartek Kryza
01db5185b2 Updated test cases documentation 2023-06-12 00:55:11 +02:00
Bartek Kryza
43cc5cb49f Extended source_location with column and translation unit info 2023-06-12 00:42:52 +02:00
Bartek Kryza
84ec4733cc Merge pull request #156 from bkryza/v0.3.7
V0.3.7
2023-06-11 18:02:43 +02:00
Bartek Kryza
f963c10257 Updated conda packaging 2023-06-11 17:27:07 +02:00
Bartek Kryza
fbb16859f3 Added Windows installer build script 2023-06-11 17:14:00 +02:00
Bartek Kryza
3154cfd737 Releasing version 0.3.7 2023-06-11 12:50:51 +02:00
Bartek Kryza
6ff1618827 Updated README 2023-06-10 23:30:14 +02:00
Bartek Kryza
73b446f0f7 Merge pull request #155 from bkryza/add-config-regexp-support
Add config regexp support
2023-06-10 20:11:08 +02:00
Bartek Kryza
6d329dfdf6 Fixed diagram filters docs 2023-06-10 20:10:02 +02:00
Bartek Kryza
20fe6b1687 Updated test cases documentation 2023-06-10 19:02:06 +02:00
Bartek Kryza
01ef3dcbcc Updated diagram filters docs 2023-06-10 18:59:36 +02:00
Bartek Kryza
7564b6408f Updated troubleshooting 2023-06-10 17:30:42 +02:00
Bartek Kryza
dc74069dfd Added glob pattern support in paths filter 2023-06-10 16:21:55 +02:00
Bartek Kryza
ac01127436 Added OS details information in version help message 2023-06-09 22:35:03 +02:00
Bartek Kryza
0a4e2c8855 Fixed clang-tidy warnings 2023-06-09 01:31:29 +02:00
Bartek Kryza
7e416ffa97 Added regex support to dependencies and dependants filter 2023-06-09 00:44:25 +02:00
Bartek Kryza
658bceee4b Added regex support to context filter 2023-06-08 19:02:14 +02:00
Bartek Kryza
b0501d4bfb Added regex support to specializations filter 2023-06-08 14:08:31 +02:00
Bartek Kryza
b3b95efb65 Added regex support to parents filter 2023-06-08 00:03:50 +02:00
Bartek Kryza
ad2fc3f8a6 Added regex support to subclasses filter 2023-06-07 00:15:56 +02:00
Bartek Kryza
c7e61a586b Added regex support to namespaces filter 2023-06-06 21:31:50 +02:00
Bartek Kryza
399b7e1907 Added regex support to elements filter 2023-06-05 23:05:54 +02:00
Bartek Kryza
3430d5422a Added Ubuntu Lunar packaging spec 2023-06-05 22:44:27 +02:00
Bartek Kryza
6ffed4188c Merge pull request #153 from bkryza/fix-building-on-gcc13
Fix building on gcc13
2023-06-04 11:16:07 +02:00
Bartek Kryza
d3a5ba28ff Added Ubuntu Lunar package spec 2023-06-03 23:17:21 +02:00
Bartek Kryza
194164c8a4 Updated packaging warnings 2023-06-03 18:45:39 +02:00
Bartek Kryza
9f726e495c Updated packaging warnings 2023-06-03 18:36:02 +02:00
Bartek Kryza
12f129a6fe Upgraded spdlog to v1.11.0 2023-06-03 18:00:54 +02:00
Bartek Kryza
859758a1eb Merge pull request #151 from bkryza/add-method-groups-and-filters
Add method groups and filters
2023-06-02 22:52:43 +02:00
Bartek Kryza
a78839eecf Updated test cases documentation 2023-06-02 22:02:08 +02:00
Bartek Kryza
75d1daac31 Updated diagram filters test cases and docs 2023-06-02 21:50:51 +02:00
Bartek Kryza
e681d1a3cc Added custom method type destructor filter 2023-06-02 21:08:19 +02:00
Bartek Kryza
e40dc3a60c Added method type diagram filter (#145) 2023-06-02 01:06:22 +02:00
Bartek Kryza
e7f738c6dc Fixed handling properties of template methods (e.g. is_constructor) 2023-06-01 00:57:46 +02:00
Bartek Kryza
112f7cb806 Refactored apply_if helper functions 2023-06-01 00:06:32 +02:00
Bartek Kryza
ae44c2413b Fixed clang-tidy warnings 2023-05-31 23:07:40 +02:00
Bartek Kryza
0973289eb7 Added test case for unsorted and ungrouped class members and methods 2023-05-31 22:52:31 +02:00
Bartek Kryza
c87bd7d94b Added default class method and member grouping and sorting 2023-05-31 22:46:39 +02:00
Bartek Kryza
097f7a11ed Extended generation of method attributes (#142) 2023-05-30 18:51:13 +02:00
Bartek Kryza
75b900bf46 Extended troubleshooting section 2023-05-29 20:25:15 +02:00
Bartek Kryza
af7973d707 Merge pull request #149 from bkryza/v0.3.6
Updated README and CHANGELOG for 0.3.6
2023-05-29 00:05:54 +02:00
Bartek Kryza
3d8a0ce428 Updated README and CHANGELOG for 0.3.6 2023-05-28 23:02:51 +02:00
Bartek Kryza
77f3325d6a Merge pull request #148 from bkryza/add-packages-from-directory-structure
Add packages from directory structure
2023-05-28 22:58:45 +02:00
Bartek Kryza
f273f6b2f7 Fixed formatting 2023-05-28 22:20:40 +02:00
Bartek Kryza
8e801fe31d Fixed building on MSVC 2023-05-28 22:17:21 +02:00
Bartek Kryza
0028cf6f3d Fixed building on macos 2023-05-28 19:59:58 +02:00
Bartek Kryza
3e97a37c5f Updated docs 2023-05-28 19:08:10 +02:00
Bartek Kryza
81c7ce71df Improved skipping of empty packages in class diagrams 2023-05-28 18:38:57 +02:00
Bartek Kryza
5c4a98ba79 Fixed clang-tidy warnings 2023-05-27 23:41:36 +02:00
Bartek Kryza
e6fa19ff39 Refactored nested diagrams with element_view template 2023-05-27 22:32:04 +02:00
Bartek Kryza
ba32b54395 Added test case for package diagram from directory structure for plain C 2023-05-26 21:46:39 +02:00
Bartek Kryza
2a29968f09 Added test case for package diagram from directory structure 2023-05-26 21:06:23 +02:00
Bartek Kryza
467c021e17 Added generation of package diagrams from directory structure instead of namespaces 2023-05-26 21:05:52 +02:00
Bartek Kryza
c3dcac72da Updated t00065 test case 2023-05-24 22:23:14 +02:00
Bartek Kryza
75c027262f Fixed class diagram generation with packages from directories 2023-05-24 22:22:47 +02:00
Bartek Kryza
10a28cf35e Added clanguml element hierarchy class diagram 2023-05-24 22:18:40 +02:00
Bartek Kryza
01c791e6a1 Added initial support for directory based packages in class diagrams 2023-05-21 11:55:57 +02:00
Bartek Kryza
044c9ced19 Fixed generation of dependent template argument names (#146) 2023-05-20 11:40:12 +02:00
Bartek Kryza
bca1162b16 Updated changelog 2023-05-16 18:01:42 +02:00
Bartek Kryza
7dff400978 Fixed possible segfault in package diagram generator 2023-05-16 08:56:08 +02:00
Bartek Kryza
9035ee52ac Merge pull request #143 from bkryza/fix-handling-field-template-instantiation-relationships
Fix handling field template instantiation relationships
2023-05-15 09:39:05 +02:00
Bartek Kryza
90e251314f Updated test cases documentation 2023-05-15 01:26:34 +02:00
Bartek Kryza
57aa174a86 Fixed t00064 on LLVM 16 2023-05-15 01:23:37 +02:00
Bartek Kryza
02f470e563 Fixed rendering of methods in template class specializations 2023-05-14 18:57:40 +02:00
Bartek Kryza
0fbf491dfe Fixed handling of decltype cxxmember type aliases with dependend parameters 2023-05-14 16:35:14 +02:00
Bartek Kryza
4b0fcd631d Fixed handling of function template parameters 2023-05-13 18:10:11 +02:00
Bartek Kryza
d6db61bde0 Updated README example 2023-05-13 15:01:29 +02:00
Bartek Kryza
c110d19a78 Added type_list test case 2023-05-13 14:58:24 +02:00
Bartek Kryza
3b573ff034 Fixed handling of anonymous template parameters 2023-05-13 14:58:07 +02:00
Bartek Kryza
2223f595cd Fixed generation of template specializations from alias template type members 2023-05-13 12:42:30 +02:00
Bartek Kryza
3b99ca1313 Updated CHANGELOG 2023-05-11 22:01:34 +02:00
Bartek Kryza
8ae1d2a005 Merge pull request #139 from bkryza/fix-handling-of-anonymous-c-style-typedef-structs
Fixed handling of C99 typedef structs (#138)
2023-05-11 22:00:59 +02:00
Bartek Kryza
463f27e54e Updated test cases documentation 2023-05-11 21:29:13 +02:00
Bartek Kryza
7e9944ce60 Fixed handling of C99 typedef structs (#138) 2023-05-11 19:52:27 +02:00
Bartek Kryza
9a5a1523d9 Merge pull request #137 from bkryza/v0.3.5
V0.3.5
2023-05-09 23:04:02 +02:00
Bartek Kryza
e2b772d8d6 Fixed formatting 2023-05-09 22:04:51 +02:00
Bartek Kryza
c4fb819014 Fixed include diagram JSON generator on Windows 2023-05-09 22:03:42 +02:00
Bartek Kryza
48e845ce07 Updated test cases documentation 2023-05-09 20:03:25 +02:00
Bartek Kryza
9e366ddd9e Improved libraries detection on Apple Silicon Homebrew 2023-05-09 20:01:28 +02:00
Bartek Kryza
0aa6ff50c9 Updated README badge 2023-05-09 19:59:08 +02:00
Bartek Kryza
7fb453c1ad Updated changelog 2023-05-09 19:57:58 +02:00
Bartek Kryza
e14a6effd5 Fixed clang-tidy warnings 2023-05-09 19:41:55 +02:00
Bartek Kryza
29a3a10ca8 Improve error handling in PlantUML directives generator 2023-05-09 19:20:07 +02:00
Bartek Kryza
f3453b595d Merge pull request #136 from bkryza/add-element-types-filter
Added element_types diagram filter (#131)
2023-05-08 23:53:48 +02:00
Bartek Kryza
39efdf5680 Updated test cases documentation 2023-05-08 23:24:12 +02:00
Bartek Kryza
dec4b7bc3d Added element_types diagram filter (#131) 2023-05-08 22:54:34 +02:00
Bartek Kryza
f8876b1ed0 Updated changelog 2023-05-07 19:02:12 +02:00
Bartek Kryza
2bbaad2715 Merge pull request #134 from bkryza/add-query-driver-option
Add query driver option
2023-05-07 18:55:01 +02:00
Bartek Kryza
58572e4da7 Updated building on Windows 2023-05-07 16:50:10 +02:00
Bartek Kryza
702a1655d0 Updated docs 2023-05-07 16:33:17 +02:00
Bartek Kryza
16ca3bd50a Added handling of query-driver target and using default driver for '.' 2023-05-07 16:33:10 +02:00
Bartek Kryza
d31f282816 Fixed building on macOS 2023-05-06 16:58:19 +02:00
Bartek Kryza
9b2adc5d2f Added --query-driver option to enable automatic detection of system include paths from selected compiler (#109) 2023-05-06 16:39:41 +02:00
Bartek Kryza
023fac07f9 Merge pull request #133 from bkryza/fix-add-compile-commands-flags
Fix add compile commands flags
2023-05-06 00:16:10 +02:00
Bartek Kryza
68a20c550b Updated troubleshooting 2023-05-06 00:15:46 +02:00
Bartek Kryza
4477a1892f Updated configuration file specification 2023-05-06 00:14:26 +02:00
Bartek Kryza
2367765d1f Fixed .gitignore 2023-05-05 23:47:40 +02:00
Bartek Kryza
e6fb4329df Updated troubleshooting docs section 2023-05-05 23:00:23 +02:00
Bartek Kryza
5e78377cf3 Added add_compile_flag and remove_compile_flag options to cli_handler (#130) 2023-05-05 22:40:31 +02:00
Bartek Kryza
d349f3e01c Updated remove_compile_flags option 2023-05-05 21:09:21 +02:00
Bartek Kryza
f912e7ae5d Merge pull request #129 from bkryza/fix-template-specialization-members
Fix template specialization members
2023-05-04 23:03:09 +02:00
Bartek Kryza
3b0c7ed3a2 Updated test cases documentation 2023-05-04 22:32:47 +02:00
Bartek Kryza
3eb1c476b3 Added rendering of template specialization members 2023-05-04 22:29:13 +02:00
Bartek Kryza
7277320199 Improved error message about no translation units found 2023-05-04 20:53:13 +02:00
Bartek Kryza
2c5769982b Updated README formatting 2023-05-03 23:15:10 +02:00
Bartek Kryza
92ec340292 Merge pull request #127 from bkryza/fix-handling-of-template-parameters-of-different-kinds
Fix handling of template parameters of different kinds
2023-05-03 23:10:39 +02:00
Bartek Kryza
475eaa2974 Fixed typo 2023-05-03 22:28:15 +02:00
Bartek Kryza
60c2f31060 Updated github actions to nodejs 16 2023-05-03 22:28:09 +02:00
Bartek Kryza
a42009e459 Updated test cases documentation 2023-05-03 21:53:49 +02:00
Bartek Kryza
665c784fed Updated CHANGELOG 2023-05-03 21:47:03 +02:00
Bartek Kryza
82410b345d Fixed clang-tidy warnings 2023-05-03 21:38:31 +02:00
Bartek Kryza
e9a57283fc Fixed test cases on LLVM 16 2023-05-03 20:23:17 +02:00
Bartek Kryza
3df81d5878 Updated README with examples 2023-05-03 16:25:02 +02:00
Bartek Kryza
3fea01d452 Fixed handling of template template specialization parameters in instantiation deduction 2023-05-03 12:41:26 +02:00
Bartek Kryza
f01ddc63f2 Fixed handling of array template specialization types 2023-05-02 16:10:35 +02:00
Bartek Kryza
640c5263ce Fixed handling of qualifiers in template parameter deduced contexts 2023-05-01 12:39:45 +02:00
Bartek Kryza
68f067f76a Refactored template builder with try_as methods for different types 2023-05-01 01:41:04 +02:00
Bartek Kryza
6ebdc8ab77 WIP 2023-04-28 22:46:36 +02:00
Bartek Kryza
0f4a2e1f9c Fixed handling of qualifiers in unexposed template parameters 2023-04-25 01:13:48 +02:00
Bartek Kryza
47ccb561c9 Fixed handling of unexposed variadic template params 2023-04-24 00:28:57 +02:00
Bartek Kryza
3ed50ba3b2 Fixed formatting 2023-04-23 19:29:46 +02:00
Bartek Kryza
192e1993e8 Added initial unexposed template parameter deduction test case 2023-04-23 19:29:30 +02:00
Bartek Kryza
0aa4eb732d Improved unexposed template parameter tokenization 2023-04-23 19:29:02 +02:00
Bartek Kryza
7f9d698afc Improved handling of method template deductions 2023-04-18 23:56:37 +02:00
Bartek Kryza
6323ce8a92 Fixed template_builder handling of nested template specializations 2023-04-18 00:13:48 +02:00
Bartek Kryza
758c1418a6 Refactored template instantiation builder methods to a separate class 2023-04-15 22:42:17 +02:00
Bartek Kryza
f034b554de Added case handling of template argument kinds 2023-04-15 11:48:21 +02:00
Bartek Kryza
0d524b38a4 Fixed handling of template template default arguments 2023-04-14 21:05:48 +02:00
Bartek Kryza
c91fe43c1c Merge pull request #120 from bkryza/v0.3.4
V0.3.4
2023-04-07 12:15:07 +02:00
Bartek Kryza
9a96c03c57 Updated release badges 2023-04-07 11:17:21 +02:00
Bartek Kryza
b74bdab785 Updated CHANGELOG for 0.3.4 2023-04-07 10:29:35 +02:00
Bartek Kryza
a06ac52865 Updated test cases documentation 2023-04-07 00:55:14 +02:00
Bartek Kryza
e2a6b81f7f Fixed CLI11 print help handling 2023-04-07 00:46:01 +02:00
Bartek Kryza
2a6f515b47 Added diagram metadata to PlantUML and JSON generators 2023-04-07 00:22:52 +02:00
Bartek Kryza
a682aab21d Updated CLI11 version to 2.3.2 2023-04-07 00:21:07 +02:00
Bartek Kryza
06fe24f59b Merge pull request #119 from bkryza/fix-t00044
Fix t00044
2023-04-06 00:02:05 +02:00
Bartek Kryza
14cba01a3f Updated test cases documentation 2023-04-05 23:35:29 +02:00
Bartek Kryza
69a94bcc43 Extended t00044 with JSON checks 2023-04-05 23:28:51 +02:00
Bartek Kryza
ade1f76640 Fixed clang-tidy warnings 2023-04-05 22:55:54 +02:00
Bartek Kryza
38928cf86f Refactored template specialization matching 2023-04-05 21:57:56 +02:00
Bartek Kryza
cb74864d0d Removed dead code 2023-04-05 20:31:00 +02:00
Bartek Kryza
2b951fe170 Fixed matching template instantiation to templates with variadic params in the middle 2023-04-05 00:44:27 +02:00
Bartek Kryza
425a13ec5b Fixed t00044 2023-04-05 00:22:45 +02:00
Bartek Kryza
75eaef3662 Fixed handling of template function specialization arguments 2023-04-02 19:40:05 +02:00
Bartek Kryza
a55845e29e Updated CHANGELOG 2023-03-31 01:03:34 +02:00
Bartek Kryza
8009db2aba Merge pull request #117 from bkryza/fix-building-on-llvm-16
Fix building on llvm 16 #108
2023-03-31 01:02:16 +02:00
Bartek Kryza
65c3929cb2 Fixed clang-tidy warnings 2023-03-30 22:48:42 +02:00
Bartek Kryza
b35b840b66 Fixed formatting 2023-03-30 22:34:46 +02:00
Bartek Kryza
d9204414d9 Fixed sequence diagram test cases on LLVM 16 2023-03-30 22:30:25 +02:00
Bartek Kryza
c297616b59 Fixed class diagram test cases on LLVM 16 2023-03-30 00:31:37 +02:00
Bartek Kryza
15f9f9ae2b Fixed compilation with some failing test cases on LLVM 16 2023-03-28 21:35:31 +02:00
Bartek Kryza
91ece95d49 Updated docs 2023-03-28 09:53:46 +02:00
Bartek Kryza
8c8bd4464a Updated docs 2023-03-27 22:52:31 +02:00
Bartek Kryza
e9a4504827 Added test case for paths include filter (Fixes #113) 2023-03-27 22:45:12 +02:00
Bartek Kryza
97177e09a1 Merge pull request #116 from bkryza/v0.3.3
V0.3.3
2023-03-26 20:38:27 +02:00
Bartek Kryza
8d136adb6d Updated README badge version 2023-03-26 20:09:17 +02:00
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
1311 changed files with 198858 additions and 47043 deletions

View File

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

View File

@@ -5,9 +5,11 @@ Checks: >-
-*osx*,
-abseil*,
-android*,
-boost*,
-bugprone-branch-clone,
-bugprone-exception-escape,
-bugprone-easily-swappable-parameters,
-bugprone-empty-catch,
-clang-analyzer-alpha.*,
-clang-analyzer-core.StackAddressEscape,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
@@ -16,6 +18,8 @@ Checks: >-
-cppcoreguidelines-special-member-functions,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-missing-std-forward,
-cppcoreguidelines-avoid-const-or-ref-data-members,
-cert-env33-c,
-cert-err58-cpp,
-cert-dcl58-cpp,
@@ -26,20 +30,27 @@ Checks: >-
-google-default-arguments,
-google-explicit-constructor,
-google-build-using-namespace,
-google-upgrade-*,
-google-runtime-int,
-hicpp-signed-bitwise,
-hicpp-explicit-conversions,
-llvmlibc-*,
-llvm-header-guard,
-llvm-namespace-comment,
-llvm-prefer-register-over-unsigned,
-llvm-twine-local,
-misc-confusable-identifiers,
-misc-no-recursion,
-misc-non-private-member-variables-in-classes,
-misc-const-correctness,
-misc-include-cleaner,
-modernize-use-nodiscard,
-modernize-use-trailing-return-type,
-modernize-concat-nested-namespaces,
-mpi*,
-objc*,
-openmp*,
-performance-unnecessary-value-param,
-readability-inconsistent-declaration-parameter-name,
-readability-identifier-length,
-readability-identifier-naming,
@@ -48,12 +59,13 @@ Checks: >-
-readability-function-cognitive-complexity,
-readability-const-return-type,
-readability-simplify-boolean-expr,
-readability-make-member-function-const,
-darwin*,
-zircon*
WarningsAsErrors: '*'
HeaderFilterRegex: 'src'
CheckOptions:
- key: readability-identifier-naming.ClassMemberSuffix
- key: readability-identifier-naming.PrivateMemberSuffix
value: '_'
- key: readability-identifier-naming.PublicMemberSuffix
value: ''

View File

@@ -1,28 +1,90 @@
compilation_database_dir: debug
output_directory: docs/diagrams
comment_parser: clang
add_compile_flags:
- -fparse-all-comments
- -Wno-deprecated-declarations
- -Wno-ignored-optimization-argument
remove_compile_flags:
- -Wno-class-memaccess
- -Wno-dangling-reference
plantuml:
cmd: "plantuml -tsvg \"docs/diagrams/{}.puml\""
mermaid:
cmd: "mmdc -i \"docs/diagrams/{}.mmd\" -o \"docs/diagrams/{}.svg\""
generate_links:
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 %}'
link: "{% if existsIn(element, \"doxygen_link\") %}{{ element.doxygen_link }}{% endif %}"
tooltip: "{% if existsIn(element, \"comment\") and existsIn(element.comment, \"brief\") %}{{ abbrv(trim(replace(element.comment.brief.0, \"\\n+\", \" \")), 256) }}{% else %}{{ element.name }}{% endif %}"
diagrams:
main_package:
include!: uml/main_package_diagram.yml
# Class diagrams
class_translation_unit_visitor:
include!: uml/class/class_translation_unit_visitor.yml
architecture_visitors_class:
include!: uml/class/architecture_visitors_class.yml
config_class:
include!: uml/config_class_diagram.yml
include!: uml/class/config_class.yml
config_context_class:
include!: uml/class/config_context_class.yml
compilation_database_context_class:
include!: uml/class/compilation_database_context_class.yml
inheritable_diagram_options_context_class:
include!: uml/class/inheritable_diagram_options_context_class.yml
diagram_config_hierarchy_class:
include!: uml/class/diagram_config_hierarchy_class.yml
diagram_hierarchy_class:
include!: uml/class/diagram_hierarchy_class.yml
decorated_element_hierarchy_class:
include!: uml/class/decorated_element_hierarchy_class.yml
stylable_element_hierarchy_class:
include!: uml/class/stylable_element_hierarchy_class.yml
source_location_hierarchy_class:
include!: uml/class/source_location_hierarchy_class.yml
filter_visitor_hierarchy_class:
include!: uml/class/filter_visitor_hierarchy_class.yml
diagram_filter_context_class:
include!: uml/class/diagram_filter_context_class.yml
nested_trait_hierarchy_class:
include!: uml/class/nested_trait_hierarchy_class.yml
package_hierarchy_class:
include!: uml/class/package_hierarchy_class.yml
source_file_hierarchy_class:
include!: uml/class/source_file_hierarchy_class.yml
template_trait_hierarchy_class:
include!: uml/class/template_trait_hierarchy_class.yml
comment_visitor_hierarchy_class:
include!: uml/class/comment_visitor_hierarchy_class.yml
decorators_class:
include!: uml/decorators_class_diagram.yml
include!: uml/class/decorators_class.yml
relationship_context_class:
include!: uml/class/relationship_context_class.yml
common_model_class:
include!: uml/common_model_class_diagram.yml
include!: uml/class/common_model_class.yml
class_model_class:
include!: uml/class_model_class_diagram.yml
include!: uml/class/class_model_class.yml
diagram_element_hierarchy_class:
include!: uml/class/diagram_element_hierarchy_class.yml
sequence_model_class:
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
include!: uml/class/sequence_model_class.yml
package_model_class:
include!: uml/package_model_class_diagram.yml
include!: uml/class/package_model_class.yml
# Sequence diagrams
main_sequence:
include!: uml/sequence/main_sequence.yml
load_config_sequence:
include!: uml/sequence/load_config_sequence.yml
cli_handle_options_sequence:
include!: uml/sequence/cli_handle_options_sequence.yml
diagram_generate_generic_sequence:
include!: uml/sequence/diagram_generate_generic_sequence.yml
class_diagram_generator_sequence:
include!: uml/sequence/class_diagram_generator_sequence.yml
plantuml_sequence_diagram_generator_sequence:
include!: uml/sequence/plantuml_sequence_diagram_generator_sequence.yml
template_builder_sequence:
include!: uml/sequence/template_builder_sequence.yml
# Package diagrams
architecture_package:
include!: uml/package/architecture_package.yml
# Include diagrams
include_graph:
include!: uml/include_diagram.yml
include!: uml/include/include.yml

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use flake .

View File

@@ -17,6 +17,8 @@ on:
- 'util/**'
- 'uml/**'
- '**.md'
- '**.svg'
- '**.png'
branches-ignore:
- 'noactions/*'
@@ -25,7 +27,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Update package database
run: sudo apt -y update
- name: Install deps
@@ -39,15 +41,18 @@ jobs:
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=15 make test
NUMPROC=2 CODE_COVERAGE=ON LLVM_VERSION=15 make test
- name: Run coverage
run: |
lcov -c -d debug -o coverage.info
lcov -e coverage.info "$PWD/src/*" -o coverage-src.info
lcov -r coverage.info -o coverage-src.info "$PWD/src/main.cc" "$PWD/src/common/generators/generators.cc"
lcov -e coverage-src.info -o coverage-src.info "$PWD/src/*"
lcov -l coverage-src.info
- name: Upload coverage
uses: codecov/codecov-action@v2
uses: codecov/codecov-action@v3
with:
files: coverage-src.info
disable_search: true
name: clang-uml
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false

11
.gitignore vendored
View File

@@ -6,7 +6,7 @@ CMakeScripts
Testing
cmake_install.cmake
install_manifest.txt
compile_commands.json
/compile_commands.json
CTestTestfile.cmake
Session.vim
_deps
@@ -22,12 +22,21 @@ bin/
/debug_tidy
/.cache
docs/diagrams
docs/doxygen/html
docs/doxygen/xml
docs/doxygen/latex
docs/contributing.md
docs/changelog.md
coverage*.info
packaging/_BUILD
packaging/conda/meta.yaml
#nix
.direnv/
result
# CLion
.idea/

View File

@@ -1,5 +1,117 @@
# CHANGELOG
* Added context filter direction and relationships options (#274)
* Improved test coverage (#287)
* Fixed handling of relationships to nested enums (#280)
* Improved handling of anonymous and multi-dimensions arrays in
class diagrams (#278)
* Fixed handling of enums in class diagram context filter (#275)
* Added Nix clang wrapper for improved include paths handling (Thanks
@pogobanane)
* Refactored test cases (#272)
### 0.5.2
* Fixed generation of empty packages in class diagrams (#253)
* Added option inline_lambda_messages to omit lambda expressions from sequence
diagrams (#261)
* Added support for CUDA calls in sequence diagrams (#263)
* Improved handling of message call comments (#264)
* Fixed handling of nested lambda expressions in sequence diagrams
* Fixed type aliases handling in sequence diagram message names (#260)
* Added support for call expressions tracking through lambdas in function
arguments (#168)
* Added Nix build files (Thanks @hatch01, @uku3lig, @thomaslepoix)
* Fixed building with LLVM 18 (#251)
### 0.5.1
* Fixed elements filter in sequence diagrams (#248)
* Fixed progress indicators ranges with multiple commands per TU (#240)
* Added default diagram generation error for empty diagrams (#246)
* Added style option to plantuml config section (#238)
* Added generate_concept_requirements config option (#237)
* Refactored util pipe handling (#244)
* Fixed handling of variadic template parameters in sequence diagrams (#241)
* Fixed handling of query_driver option in config file (#243)
### 0.5.0
* Fixed static linking against LLVM (#225)
* Fixed handling of absolute paths in glob patterns (#233)
* Enabled type_aliases config option for sequence diagrams (#224)
* Refactored and unified JSON generators output (#223)
* Added support for C++20 module based packages in class diagrams (#101)
* Added support for class diagram filtering based on C++20 modules (#195)
* Added support for C++20 coroutines in class diagrams (#221)
* Fixed progress indicator characters on Windows (#218)
### 0.4.2
* Fixed random typos and omissions in docs (#208)
* Fixed handling of diagram hyperlinks with sources outside of project dir (#213)
* Fixed test case t00014 on macos (#176)
* Added automatic generation of diagram images using PlantUML and MermaidJS (#204)
* Added radius parameter to context filter (#201)
### 0.4.1
* Enabled manual call expression injection through comments (#196)
* Added support for generating sequence diagram notes from comments (#194)
* Added Bash and Zsh autocomplete scripts (#193)
* Updated `clang-uml` to work with LLVM 17 (#190)
* Fixed handling of compilation databases with relative header paths (#189)
* Excluded package diagram dependencies on parent and child packages (186)
* Excluded package diagram relationships to rejected packages (#185)
* Added 'title' diagram property (#184)
* Make sure sequence diagram messages generated during static variable
initialization are rendered only once (#183)
### 0.4.0
* Added MermaidJS diagram generators (#27)
### 0.3.9
* Added `from_to` and `to` location constraints to sequence diagrams (#154)
* Fixed 'else if' statement generation in sequence diagrams (#81)
* Implemented removal of redundant dependency relationships (#28)
* Add option to disable generation of dependency relation to template
arguments (#141)
* Added configuration file validation (#57)
### 0.3.8
* Added option to display block conditional statements in sequence diagrams (#162)
* Added Doxygen documentation (#161)
* Added diagram generation progress indicators options (#158)
* Extended source_location with column and translation unit info
### 0.3.7
* Added regexp support to selected diagram filters (#51, #132)
* Added method type diagram filter (#145)
* Added default method grouping and sorting in class diagrams (#36)
* Improved generation of method attributes (e.g. constexpr, noexcept) (#142)
### 0.3.6
* Added generation of packages in class and package diagrams from
filesystem directories (#144)
* Improved handling of class template specializations and their
relationships (#140)
* Fixed handling of C99 typedef structs (#138)
### 0.3.5
* Added `--query-driver` option to automatically detect system include paths (#109)
* Fixed add_compile_flags and added remove_compile_flags config options (#130)
* Added rendering of template specialization fields and methods (#128)
* Improved template specialization/instantiation matching based on deduced
context
### 0.3.4
* Added diagram metadata to PlantUML and JSON generators (#27)
* Improved template specialization matching for variadic and function
template parameters (#118)
* Fixed compilation and tests on LLVM 16 (#108)
### 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)

View File

@@ -1,10 +1,12 @@
cmake_minimum_required(VERSION 3.12)
cmake_minimum_required(VERSION 3.16)
#
# Project name
#
project(clang-uml C CXX)
cmake_policy(SET CMP0054 NEW)
#
# CMake standard defines
#
@@ -25,11 +27,6 @@ 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
#
@@ -37,12 +34,24 @@ 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")
if(APPLE)
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm"
OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64")
set(HOMEBREW_PREFIX "/opt/homebrew")
else()
set(HOMEBREW_PREFIX "/usr/local")
endif()
endif(APPLE)
#
# CMake build options
#
option(LINK_LLVM_SHARED "Should LLVM be linked using shared libraries" ON)
set(LLVM_VERSION CACHE STRING "Path to custom llvm-config executable")
set(LLVM_VERSION CACHE STRING "Major LLVM version to use (e.g. 15)")
set(LLVM_CONFIG_PATH CACHE STRING "Path to llvm-config binary")
set(CMAKE_PREFIX CACHE STRING "Path to custom cmake modules")
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_PREFIX}")
#
# Setup version string
@@ -52,76 +61,39 @@ setup_git_version()
message(STATUS "clang-uml version: "
"${GIT_VERSION_MAJOR}.${GIT_VERSION_MINOR}.${GIT_VERSION_PATCH}")
#
# Setup coverage
#
option(CODE_COVERAGE "" OFF)
if(CODE_COVERAGE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage -fno-inline")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov --coverage")
endif(CODE_COVERAGE)
#
# Setup LLVM
#
message(STATUS "Checking for LLVM and Clang...")
if(LLVM_PREFIX)
message(STATUS "Using llvm-config from ${LLVM_CONFIG_PATH}")
set(LIBCLANG_LLVM_CONFIG_EXECUTABLE ${LLVM_CONFIG_PATH})
set(LLVM_CONFIG_BINARY ${LLVM_CONFIG_PATH})
endif(LLVM_PREFIX)
include(LLVMSetup)
find_package(LLVM ${LLVM_VERSION} CONFIG REQUIRED)
#
# Setup custom compile options depending on various compiler
# and environment quirks
#
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0")
# Workaround over Wdangling-reference false positives in libfmt
set(CUSTOM_COMPILE_OPTIONS ${CUSTOM_COMPILE_OPTIONS} -Wno-dangling-reference)
endif()
endif()
list(APPEND CMAKE_MODULE_PATH ${LLVM_DIR})
include(AddLLVM)
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)
set(LIBTOOLING_LIBS
clangLex
clangFrontend
clangSerialization
clangDriver
clangParse
clangSema
clangSupport
clangAnalysis
clangAST
clangBasic
clangEdit
clangLex
clangTooling
LLVMipo
LLVMScalarOpts
LLVMInstCombine
LLVMTransformUtils
LLVMAnalysis
LLVMTarget
LLVMOption
LLVMMCParser
LLVMMC
LLVMObject
LLVMBitReader
LLVMCore
LLVMSupport)
if(MSVC)
if(${LLVM_PACKAGE_VERSION} VERSION_LESS "15.0")
list(REMOVE_ITEM LIBTOOLING_LIBS clangSupport)
else()
list(APPEND LIBTOOLING_LIBS
LLVMWindowsDriver
LLVMWindowsManifest)
endif()
endif(MSVC)
endif(LINK_LLVM_SHARED)
if("${LIBTOOLING_LIBS}" STREQUAL "")
message(FATAL_ERROR "Failed to find LibTooling libraries!")
else()
message(STATUS "Found LibTooling libraries: ${LIBTOOLING_LIBS}")
if(LLVM_VERSION_MAJOR GREATER_EQUAL 17)
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(CUSTOM_COMPILE_OPTIONS ${CUSTOM_COMPILE_OPTIONS} -Wno-class-memaccess)
endif()
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(CUSTOM_COMPILE_OPTIONS
${CUSTOM_COMPILE_OPTIONS} -Wno-unused-private-field)
endif()
#
@@ -138,14 +110,15 @@ if(APPLE)
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)
NAMES yaml-cpp/yaml.h
PATHS ${YAML_CPP_INCLUDE_DIR} ${HOMEBREW_PREFIX}/include)
find_library(YAML_CPP_LIBRARY
NAMES yaml-cpp
PATHS ${YAML_CPP_LIBRARIES} /usr/local/lib)
set(YAML_CPP_LIBRARY_DIR /usr/local/lib)
NAMES yaml-cpp
PATHS ${YAML_CPP_LIBRARIES} ${HOMEBREW_PREFIX}/lib)
set(YAML_CPP_LIBRARY_DIR ${HOMEBREW_PREFIX}/lib)
endif(PKG_CONFIG_FOUND)
elseif(MSVC)
find_package(yaml-cpp REQUIRED)
set(YAML_CPP_LIBRARIES "yaml-cpp")
else()
find_package(yaml-cpp REQUIRED)
@@ -180,11 +153,11 @@ set(THIRDPARTY_HEADERS_DIR ${PROJECT_SOURCE_DIR}/thirdparty/)
#
include_directories(${LLVM_INCLUDE_DIRS})
include_directories(${CLANG_UML_INSTALL_INCLUDE_DIR})
include_directories(${YAML_CPP_INCLUDE_DIRS})
include_directories(${UML_HEADERS_DIR})
include_directories(${THIRDPARTY_HEADERS_DIR})
include_directories(${PROJECT_SOURCE_DIR}/src/)
include_directories(${PROJECT_BINARY_DIR}/src/version)
include_directories(${YAML_CPP_INCLUDE_DIR})
add_subdirectory(src)
@@ -192,7 +165,18 @@ add_subdirectory(src)
# Enable testing via CTest
#
option(BUILD_TESTS "" ON)
option(ENABLE_CXX_MODULES_TEST_CASES "" OFF)
option(ENABLE_CUDA_TEST_CASES "" OFF)
#
# Setup CUDA if available
#
if(ENABLE_CUDA_TEST_CASES)
include(CheckLanguage)
check_language(CUDA)
endif(ENABLE_CUDA_TEST_CASES)
if(BUILD_TESTS)
enable_testing()
add_subdirectory(tests)
enable_testing()
add_subdirectory(tests)
endif(BUILD_TESTS)

View File

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

2676
Doxyfile Normal file

File diff suppressed because it is too large Load Diff

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 2021-2023 Bartek Kryza <bkryza@gmail.com>
Copyright 2021-2024 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.

109
Makefile
View File

@@ -1,6 +1,6 @@
# Makefile
#
# Copyright (c) 2021-2023 Bartek Kryza <bkryza@gmail.com>
# Copyright (c) 2021-2024 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.
@@ -31,75 +31,125 @@ else
endif
LLVM_VERSION ?=
LLVM_CONFIG_PATH ?=
LLVM_SHARED ?= ON
CMAKE_PREFIX ?=
CMAKE_CXX_FLAGS ?=
CMAKE_EXE_LINKER_FLAGS ?=
CMAKE_GENERATOR ?= Unix Makefiles
CODE_COVERAGE ?= OFF
ENABLE_CXX_MODULES_TEST_CASES ?= OFF
ENABLE_CUDA_TEST_CASES ?= OFF
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)
DESTDIR ?=
.PHONY: clean
clean:
rm -rf debug release debug_tidy
rm -rf debug release debug_tidy coverage.info coverage-src.info
debug/CMakeLists.txt:
cmake -S . -B debug \
-G"$(CMAKE_GENERATOR)" \
-DGIT_VERSION=$(GIT_VERSION) \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_CXX_FLAGS="$(CMAKE_CXX_FLAGS)" \
-DCMAKE_EXE_LINKER_FLAGS="$(CMAKE_EXE_LINKER_FLAGS)" \
-DLLVM_VERSION=${LLVM_VERSION}
-DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DLINK_LLVM_SHARED=${LLVM_SHARED} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CUDA_TEST_CASES=$(ENABLE_CUDA_TEST_CASES) \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES) \
-DCODE_COVERAGE=$(CODE_COVERAGE)
release/CMakeLists.txt:
cmake -S . -B release \
-G"$(CMAKE_GENERATOR)" \
-DGIT_VERSION=$(GIT_VERSION) \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-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} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DLINK_LLVM_SHARED=${LLVM_SHARED} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CUDA_TEST_CASES=$(ENABLE_CUDA_TEST_CASES) \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES)
debug_tidy/CMakeLists.txt:
cmake -S . -B debug_tidy \
-G"$(CMAKE_GENERATOR)" \
-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}
-DLLVM_VERSION=${LLVM_VERSION} \
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DLINK_LLVM_SHARED=${LLVM_SHARED} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DENABLE_CUDA_TEST_CASES=$(ENABLE_CUDA_TEST_CASES) \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES)
debug: debug/CMakeLists.txt
echo "Using ${NUMPROC} cores"
make -C debug -j$(NUMPROC)
cmake --build debug -j$(NUMPROC)
debug_tidy: debug_tidy/CMakeLists.txt
echo "Using ${NUMPROC} cores"
make -C debug_tidy -j$(NUMPROC)
cmake --build debug_tidy -j$(NUMPROC)
release: release/CMakeLists.txt
make -C release -j$(NUMPROC)
cmake --build release -j$(NUMPROC)
test: debug
CTEST_OUTPUT_ON_FAILURE=1 make -C debug test
CTEST_OUTPUT_ON_FAILURE=1 ctest --test-dir debug
test_release: release
CTEST_OUTPUT_ON_FAILURE=1 make -C release test
CTEST_OUTPUT_ON_FAILURE=1 ctest --test-dir release
test_plantuml: test
plantuml -tsvg debug/tests/puml/*.puml
coverage_report: test
lcov -c -d debug -o coverage.info
lcov -r coverage.info -o coverage-src.info "${PWD}/src/main.cc" "${PWD}/src/common/generators/generators.cc"
lcov -e coverage-src.info -o coverage-src.info "${PWD}/src/*"
lcov -l coverage-src.info
genhtml coverage-src.info --output-directory debug/coverage_html
document_test_cases: test_plantuml
install: release
make -C release install DESTDIR=${DESTDIR}
test_diagrams: test
mkdir -p debug/tests/diagrams/plantuml
mkdir -p debug/tests/diagrams/mermaid
plantuml -tsvg -nometadata -o plantuml debug/tests/diagrams/*.puml
python3 util/validate_json.py debug/tests/diagrams/*.json
python3 util/generate_mermaid.py debug/tests/diagrams/*.mmd
document_test_cases: test_diagrams
python3 util/generate_test_cases_docs.py
# Format generated SVG files
python3 util/format_svg.py docs/test_cases/*.svg
clanguml_diagrams: debug
mkdir -p docs/diagrams
debug/src/clang-uml
plantuml -tsvg -nometadata docs/diagrams/*.puml
python3 util/format_svg.py docs/diagrams/*.svg
mkdir -p docs/diagrams/plantuml
mkdir -p docs/diagrams/mermaid
debug/src/clang-uml -g plantuml -g json -g mermaid -p
# Convert .puml files to svg images
plantuml -tsvg -nometadata -o plantuml docs/diagrams/*.puml
# Convert .mmd files to svg images
python3 util/generate_mermaid.py docs/diagrams/*.mmd
# Format generated SVG files
python3 util/format_svg.py docs/diagrams/plantuml/*.svg
python3 util/format_svg.py docs/diagrams/mermaid/*.svg
.PHONY: submodules
submodules:
@@ -122,7 +172,7 @@ format:
.PHONY: debug_tidy
tidy: debug_tidy
run-clang-tidy-15 -p debug_tidy ./src
run-clang-tidy-17 -extra-arg=-Wno-unknown-warning-option -j $(NUMPROC) -p debug_tidy ./src
.PHONY: check-formatting
check-formatting:
@@ -138,14 +188,17 @@ iwyu_fixes: debug
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: doxygen
doxygen: docs
cp CONTRIBUTING.md docs/contributing.md
cp CHANGELOG.md docs/changelog.md
mkdir -p docs/doxygen/html/test_cases
cp docs/diagrams/plantuml/*.svg docs/doxygen/html/
cp docs/test_cases/*.svg docs/doxygen/html/test_cases/
../doxygen/_build/bin/doxygen
.PHONY: fedora_37
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"
.PHONY: fedora/%
fedora/%:
mkdir -p packaging/_BUILD/fedora/$*
git archive --format=tar.gz --prefix=clang-uml-$(PKG_VERSION)/ v$(GIT_VERSION) >packaging/_BUILD/fedora/$*/clang-uml-$(PKG_VERSION).tar.gz
docker run --cpuset-cpus=0-7 -v $(PWD):$(PWD) fedora:$* sh -c "dnf install -y make git && cd ${PWD} && make OS=fedora DIST=$* VERSION=${PKG_VERSION} COMMIT=${GIT_COMMIT} BRANCH=${GIT_BRANCH} -C packaging rpm"

139
README.md
View File

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

View File

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

View File

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

100
cmake/LLVMSetup.cmake Normal file
View File

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

View File

@@ -1,6 +1,6 @@
# docs/Makefile
#
# Copyright (c) 2021-2023 Bartek Kryza <bkryza@gmail.com>
# Copyright (c) 2021-2024 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.
@@ -19,15 +19,18 @@ UPDATE_TOC := markdown-toc --bullets "*" -i
.PHONY: toc
toc:
$(UPDATE_TOC) architecture.md
$(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

View File

@@ -1,18 +1,46 @@
@mainpage clang-uml
# Documentation
`clang-uml` is an automatic C++ to UML class, sequence, package and include diagram generator, driven by
YAML configuration files. The main idea behind the
project is to easily maintain up-to-date diagrams within a code-base or document
legacy code. The configuration file or files for `clang-uml` define the
types and contents of each generated diagram.
The diagrams can be generated in [PlantUML](https://plantuml.com),
[MermaidJS](https://mermaid.js.org/) and JSON formats.
Example sequence diagram generated using `clang-uml` from [this code](https://github.com/bkryza/clang-uml/blob/master/tests/t20029/t20029.cc):
![Sample sequence diagram](test_cases/t20029_sequence.svg)
`clang-uml` currently supports C++ up to version 17 with partial support for C++ 20.
To see what `clang-uml` can do, checkout the diagrams generated for unit
test cases [here](./test_cases.md) or examples in
[clang-uml-examples](https://github.com/bkryza/clang-uml-examples) repository.
These pages provide both user and developer documentation.
* [Quick start](./quick_start.md)
* [Installation](./installation.md)
* Generating diagrams
* **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)
* [Comment decorators](./comment_decorators.md)
* [Diagram filters](./diagram_filters.md)
* [Using Jinja templates](./jinja_templates.md)
* [Interactive SVG diagrams using links](./interactive_svg_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)
* [Changelog](./changelog.md)
* [License](./license.md)
* **Development**
* [Architecture](./architecture.md)
* [Contributing](./contributing.md)

198
docs/architecture.md Normal file
View File

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

View File

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

View File

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

View File

@@ -3,44 +3,69 @@
<!-- toc -->
* [Overall configuration file structure](#overall-configuration-file-structure)
* [Diagram titles](#diagram-titles)
* [Translation unit glob patterns](#translation-unit-glob-patterns)
* [PlantUML custom directives](#plantuml-custom-directives)
* [Custom directives](#custom-directives)
* [Adding debug information in the generated diagrams](#adding-debug-information-in-the-generated-diagrams)
* [Resolving include path and compiler flags issues](#resolving-include-path-and-compiler-flags-issues)
* [Use '--query-driver' command line option](#use---query-driver-command-line-option)
* [Manually add and remove compile flags from the compilation database](#manually-add-and-remove-compile-flags-from-the-compilation-database)
* [Using 'CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES'](#using-cmake_cxx_implicit_include_directories)
* [Nix wrapper](#nix-wrapper)
<!-- 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:
By default, `clang-uml` will look for file `.clang-uml` in the project's
directory and read all diagram definitions configuration from it. The file must
be specified in YAML and it's overall structure is as follows:
```yaml
<common options for all diagrams>
# Common options for all diagrams
# ...
# Diagram definitions
diagrams:
<first diagram name>:
type: [class|sequence|package|include]
<diagram specific options>
<second diagram name>:
type: [class|sequence|package|include]
<diagram specific options>
...
first_diagram_name:
type: class|sequence|package|include
# Diagram specific options
# ...
second_diagram_name:
type: class|sequence|package|include
# Diagram specific options
# ...
# More diagrams
# ...
```
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.
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:
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.
## Diagram titles
Each type of diagram can have a `title` property, which will be generated in the
diagram using directives specific to a given diagram generator, for instance:
The syntax is simple and based on glob patterns, which can be added to the configuration file as follows:
```yaml
diagrams:
diagram1:
type: class
title: Some explanatory diagram title
```
## 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:
@@ -48,17 +73,22 @@ The syntax is simple and based on glob patterns, which can be added to the confi
- 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.
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 match any translation units an error will be printed on
the standard output.
For small projects, the `glob` property can be omitted, which will result in `clang-uml` parsing all translation units
from `compile_commands.json` for the diagram. However for large projects, constraining the number of translation units
for each diagram to absolute minimum will significantly decrease the diagram generation times.
For 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 minimum necessary to discover all necessary diagram
elements 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:
## Custom directives
In case it's necessary to add some custom PlantUML or MermaidJS declarations
before or after the generated diagram content, it can be achieved using
the `plantuml` or `mermaid` configuration properties, for instance for PlantUML:
```yaml
plantuml:
@@ -68,21 +98,138 @@ it can be achieved simply using the `plantuml` configuration properties, for ins
- 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.
or for MermaidJS:
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.
```yaml
mermaid:
before:
- direction LR
after:
- note for {{ alias("ns1::ns2::MyClass") }} "This is my class."
```
More options can be found in the official PlantUML [documentation](https://plantuml.com/).
These directives are useful for instance for adding notes to elements in the
diagrams or customizing diagram layout and style.
Please note that when referring to diagram elements in PlantUML or MermaidJS
directives, they must be added using Jinja templates `alias` command as in the
example above.
More options can be found in the official docs for each respective generator:
* [PlantUML](https://plantuml.com/)
* [MermaidJS](https://mermaid.js.org/intro/)
## Adding debug information in the generated diagrams
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:
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.
the generated PlantUML diagram will contain comments before each line containing
the source location of the specific diagram element.
## Resolving include path and compiler flags issues
Due to the fact, that a project can be compiled with different compilers
and toolchains, the system paths and compilation flags detected by the Clang
version linked to your `clang-uml` installation might differ from the ones
actually used to compile your project.
> This is often an issue on macOS, when `clang-uml` uses Homebrew version of LLVM
> and a project was built using system Apple Clang.
Typically, this results in error messages on the console during diagram
generation, such as:
```
... fatal: 'stddef.h' file not found
```
or
```
... warning: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 [-Wimplicit-const-int-float-conversion]
```
These errors can be overcome, by ensuring that the Clang parser has the correct
include paths to analyse your code base on the given platform. `clang-uml`
provides several mechanisms to resolve this issue:
### Use '--query-driver' command line option
> This option is not available on Windows.
Providing this option on the `clang-uml` command line will result in `clang-uml`
executing the specified compiler with the following command, e.g.:
```bash
/usr/bin/c++ -E -v -x c /dev/null 2>&1
```
and extracting from the output the target and system include paths, which are
then injected to each entry of the compilation database. For instance, on my
system, when generating diagrams for an embedded project and providing
`arm-none-eabi-gcc` as driver:
```bash
clang-uml --query-driver arm-none-eabi-gcc
```
the following options are appended to each command line after `argv[0]` of the
command:
```bash
--target=arm-none-eabi -isystem /usr/lib/gcc/arm-none-eabi/10.3.1/include -isystem /usr/lib/gcc/arm-none-eabi/10.3.1/include-fixed -isystem /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/include
```
If you want to include the system headers reported by the compiler specified
already as first argument of each compile command in your
`compile_commands.json`, you can simply invoke `clang-uml` as:
```bash
clang-uml --query-driver .
```
however please make sure that the `compile_commands.json` contains a command,
which is safe to execute.
### Manually add and remove compile flags from the compilation database
If the system paths extracted from the compiler are not sufficient to resolve
include paths issues, it is possible to manually adjust the compilation
flags by providing `add_compile_flags` and `remove_compile_flags` in the
configuration file, or providing `--add-compile-flag` and `--remove-compile-flag`
on the `clang-uml` command line.
For instance:
```yaml
add_compile_flags:
- -I/opt/my_toolchain/include
remove_compile_flags:
- -I/usr/include
```
These options can be also passed on the command line, for instance:
```bash
clang-uml --add-compile-flag -I/opt/my_toolchain/include \
--remove-compile-flag -I/usr/include ...
```
### Using 'CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES'
Yet another option, for CMake based projects, is to use the following CMake option:
```cmake
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
```
### Nix wrapper
On NixOS or when using `nix`, `clang-uml` uses a wrapper script,
which builds and exports `CPATH` and `CPLUS_INCLUDE_PATH`
environment variables before running `clang-uml`, which contain valid
system header Clang paths for the current Nix environment.
If you want to use an unwrapped version, the `clang-uml-unwrapped` binary
can be called the same way as `clang-uml`.

View File

@@ -5,6 +5,7 @@
* [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 -->
@@ -15,17 +16,24 @@
* `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
* `add_compile_flags` - add compile flags to all compilation database entries
* `remove_compile_flags` - remove compile flags from all compilation database entries
* `query_driver` - name or path to compiler driver, which should be queried for system include paths (e.g. arm-none-eabi-g++)
### Diagram options
* `type` - type of diagram, one of [`class`, `sequence`, `package`, `include`]
* `glob` - list of glob patterns to match source code files for analysis
* `include_relations_also_as_members` - when set to `false`, class members for relationships are rendered in UML are skipped from class definition (default: `true`)
* `generate_method_arguments` - determines whether the class diagrams methods contain full arguments (`full`), are abbreviated (`abbreviated`) or skipped (`none`)
* `generate_concept_requirements` - determines whether concept requirements are rendered in the diagram (default: `true`)
* `using_namespace` - similar to C++ `using namespace`, a `A::B` value here will render a class `A::B::C::MyClass` in the diagram as `C::MyClass`, at most 1 value is supported
* `generate_packages` - whether or not the class diagram should contain packages generated from namespaces or subdirectories
* `package_type` - determines how the packages are inferred: `namespace` - use C++ namespaces, `directory` - use project's directory structure
* `include` - definition of inclusion patterns:
* `namespaces` - list of namespaces to include
* `relationships` - list of relationships to include
* `elements` - list of elements, i.e. specific classes, enums, templates to include
* `element_types` - list of element types e.g. `enum`, `class`, `concept`
* `access` - list of visibility scopes to include (e.g. `private`)
* `subclasses` - include only subclasses of specified classes (and themselves)
* `specializations` - include all specializations or instantiations of a given template
@@ -36,6 +44,7 @@
* `namespaces` - list of namespaces to exclude
* `relationships` - list of relationships to exclude
* `elements` - list of elements, i.e. specific classes, enums, templates to exclude
* `element_types` - list of element types e.g. `enum`, `class`, `concept`
* `access` - list of visibility scopes to exclude (e.g. `private`)
* `subclasses` - exclude subclasses of specified classes (and themselves)
* `specializations` - exclude all specializations or instantiations of a given template
@@ -46,12 +55,24 @@
* `plantuml` - verbatim PlantUML directives which should be added to a diagram
* `before` - list of directives which will be added before the generated diagram
* `after` - list of directives which will be added after the generated diagram
* `mermaid` - verbatim MermaidJS directives which should be added to a diagram
* `before` - list of directives which will be added before the generated diagram
* `after` - list of directives which will be added after the generated diagram
*
## Example complete config
```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'
# Remove specified compile flags from all compilation database entries
remove_compile_flags:
- '-Wshadow'
# Compiler driver command to query for system include paths
query_driver:
- arm-none-eabi-g++
# The directory where *.puml files will be generated
output_directory: docs/diagrams
# Set this as default for all diagrams
@@ -71,8 +92,10 @@ diagrams:
type: class
# Do not include rendered relations in the class box
include_relations_also_as_members: false
# Generate packages from the namespaces
generate_packages: true
package_type: namespace # or 'directory' to generate from projects subdirectories
# Limiting the number of files to include can significantly
# improve the generation time
glob:
- src/common/model/*.h
- src/common/model/*.cc
@@ -119,8 +142,24 @@ diagrams:
# Add this line to the beginning of the resulting puml file
before:
- 'title clang-uml class diagram model'
mermaid:
# Add this line at the end of a Mermaid diagram
end:
- 'direction LR'
```
## 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:

View File

@@ -2,13 +2,24 @@
<!-- toc -->
* [`namespaces`](#namespaces)
* [`elements`](#elements)
* [`context`](#context)
* [`relationships`](#relationships)
* [`subclasses`](#subclasses)
* [`specializations`](#specializations)
* [`dependants` and `dependencies`](#dependants-and-dependencies)
* [namespaces](#namespaces)
* [modules](#modules)
* [elements](#elements)
* [element_types](#element_types)
* [paths](#paths)
* [context](#context)
* [context radius](#context-radius)
* [context direction](#context-direction)
* [context relationships](#context-relationships)
* [relationships](#relationships)
* [subclasses](#subclasses)
* [parents](#parents)
* [specializations](#specializations)
* [access](#access)
* [module_access](#module_access)
* [method_types](#method_types)
* [callee_types](#callee_types)
* [dependants and dependencies](#dependants-and-dependencies)
<!-- tocstop -->
@@ -31,13 +42,71 @@ to your diagram configuration:
- ns1::ns2::detail
```
The following filters are available.
Some filters accept either specified exact values, some support regular
expressions while some accept glob patterns.
## `namespaces`
For filters which accept regular expressions, the regular expression has to
be provided as a map ```r: 'pattern'``` due to the fact the pointer (```*```) otherwise
would have to be escaped in situations such as ```mycontainer<char*>```, so for
instance to specify that the diagram should exclude all classes containing the
word ```test``` simply add the following filter:
```yaml
exclude:
elements:
- r: '.*test.*'
```
The following table specifies the values allowed in each filter:
| Filter name | Possible values | Example values |
|-------------------|-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| `namespaces` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: '.*detail.*'``` |
| `modules` | Qualified name or regex | ```mod1.mod2:par1```, ```r: '.*impl.*'``` |
| `elements` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: '.*detail.*'``` |
| `element_types` | Types of diagram elements | ```class```, ```enum```, ```concept``` |
| `paths` | File or dir path | ```src/dir1```, ```src/dir2/a.cpp```, ```src/dir3/*.cpp``` |
| `context` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `relationships` | Type of relationship | ```inheritance```, ```composition```, ```aggregation```, ```ownership```, ```association```, ```instantiation```, ```friendship```, ```dependency``` |
| `subclasses` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `parents` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `specializations` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `access` | Method or member access scope | ```public```, ```protected```, ```private``` |
| `module_access` | Module access scope | ```public```, ```private``` |
| `method_types` | Type of class method | ```constructor```, ```destructor```, ```assignment```, ```operator```, ```defaulted```, ```deleted```, ```static``` |
| `dependants` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `dependencies` | Qualified name or regex | ```ns1::ns2::ClassA```, ```r: 'ns1::ns2::ClassA.+'``` |
| `callee_types` | Callee types in sequence diagrams | ```constructor```, ```assignment```, ```operator```, ```defaulted```, ```static```, ```method```, ```function```, ```function_template```, ```lambda``` |
The following filters are available:
## namespaces
Allows to include or exclude entities from specific namespaces.
## `elements`
```yaml
include:
namespaces:
- ns1::ns2
exclude:
namespaces:
- ns1::ns2::detail
```
## modules
Allows to include or exclude entities from specific C++20 module.
```yaml
include:
modules:
- mod1.mod2
exclude:
modules:
- r: ".*impl.*"
```
## elements
Allows to directly include or exclude specific entities from the diagrams, for instance to exclude a specific class
from an included namespace:
@@ -51,10 +120,43 @@ from an included namespace:
- ns1::ns2::MyClass
```
## `context`
## element_types
This filter allows to limit the diagram elements only to classes which are in direct relationship (of any kind) with
the specified class:
Allows to include or exclude elements of specific type from the diagram, for instance
to remove all enums from a diagram add the following:
```yaml
exclude:
element_types:
- enum
```
## paths
This filter allows to include or exclude from the diagram elements declared
in specific files.
```yaml
diagrams:
t00061_class:
type: class
glob:
- t00061.cc
include:
paths:
- include/t00061_a.h
using_namespace:
- clanguml::t00061
```
Currently, this filter does not allow any globbing or wildcards, however
paths to directories can be specified.
## context
This filter allows to limit the diagram elements only to classes which are in
direct relationship (of any kind) with the specified `class`, `enum` or
`concept`:
```yaml
include:
@@ -62,8 +164,66 @@ the specified class:
- ns1::ns2::MyClass
```
### context radius
By default, the filter will only include or exclude items in direct
relationship (radius 1). It is however possible to define the context filter
and provide a custom radius:
## `relationships`
```yaml
include:
context:
- match:
radius: 3
pattern: ns1::ns2::MyClass
- match:
radius: 2
pattern: ns1::ns2::MyOtherClass
```
Please note that you can specify multiple context filters in a single diagram
with different radius. Radius set to 0 will match only the given element.
### context direction
Sometimes we may be interested only in relationships pointing outward from
a specific element, or inward. For instance we may want to see which elements
depend through any relationship on a specified element. For this purpose the
context filter has a `direction` option, which can have one of 3 values:
* `any` (default)
* `inward` - only relationships pointing toward the specified class are
considered in calculating the context
* `outward` - only relationships pointing toward the specified class are
considered in calculating the context
For example, the following filter:
```yaml
context:
- match:
radius: 2
pattern: clanguml::t00076::B
direction: inward
```
will include all elements related to class `B` through relationships pointing
toward `B` within a radius of maximum 2 relationships (see test case
[t00076](./test_cases/t00076.md)).
### context relationships
Another way to customize the context of a specified element is to declare
which relationships should be considered when calculating the elements' context.
For example, the following filter:
```yaml
context:
- match:
radius: 1
pattern: clanguml::t00078::A
relationships:
- inheritance
- aggregation
```
will only include elements related to class `A` through inheritance or
aggregation relationship (see test case [t00076](./test_cases/t00078.md)).
## 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:
@@ -76,27 +236,81 @@ include inheritance and template specialization/instantiation relationships add
```
The following relationships can be used in this filter:
* inheritance
* composition
* aggregation
* ownership
* association
* instantiation
* friendship
* dependency
* `inheritance`
* `composition`
* `aggregation`
* `ownership`
* `association`
* `instantiation`
* `friendship`
* `dependency`
## `subclasses`
## subclasses
This filter allows to include or exclude all subclasses of a given class in the diagram.
## `specializations`
## 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`
## access
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
This filter allows to include or exclude class methods and members based on their access scope, allowed values are:
* `public`
* `protected`
* `private`
## module_access
This filter allows to include or exclude diagram elements based on the module in which they are declared, allowed values are:
* `public`
* `private`
## method_types
This filter allows to include or exclude various method types from the class diagram, allowed values are:
* `constructor`
* `destructor`
* `assignment`
* `operator`
* `defaulted`
* `deleted`
* `static`
This filter is independent of the `access` filter, which controls which methods
are included based on access scope (e.g. `public`).
## callee_types
This filter is specific for `sequence diagrams` and allows to control, which
types of callees should be included/excluded from the diagram. In a sequence diagram,
a `callee` is the receiver of a message, and this filter specifies which types
of receivers should match.
The following callee types are supported:
* `constructor`
* `assignment`
* `operator`
* `defaulted`
* `static`
* `method`
* `function`
* `function_template`
* `lambda`
* `cuda_kernel`
* `cuda_device`
## 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:
@@ -168,6 +382,6 @@ and the following filter:
- dependency
```
generates the following diagram:
results in 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 it is 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

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

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

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

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

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

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

5033
docs/doxygen/highlight.js Normal file

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

View File

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

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

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

View File

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

942
docs/generator_types.md Normal file

File diff suppressed because it is too large Load Diff

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

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

After

Width:  |  Height:  |  Size: 963 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

BIN
docs/img/mermaid_nested.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -2,21 +2,17 @@
<!-- toc -->
* [Tracking system headers directly included by projects files](#tracking-system-headers-directly-included-by-projects-files)
* [Tracking system headers directly included by project sources](#tracking-system-headers-directly-included-by-project-sources)
<!-- tocstop -->
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.
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 never 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:
@@ -25,8 +21,6 @@ diagrams:
# 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
@@ -36,29 +30,31 @@ diagrams:
- src
```
One distinctive option in `include` diagrams is `relative_to`, which tells `clang-uml` to render all filename
paths relative to this directory.
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.
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) |
| UML | PlantUML | MermaidJS |
|-----------------------------------------|------------------------------------------|---------------------------------------------|
| Include (local) | ![association](img/puml_association.png) | ![association](img/mermaid_association.png) |
| Include (system) | ![dependency](img/puml_dependency.png) | ![association](img/mermaid_dependency.png) |
## Tracking system headers directly included by projects files
## Tracking system headers directly included by project sources
In case you would like to include the information about what system headers your projects file include simply add
the following option to the diagram:
In case you would like to include the information about what system headers your
project files 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:
This will include only system headers directly included from the project's
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.
Please note that generating include diagram, which contains third party and
system library headers will result in a huge diagram that is unlikely to
be useful.

View File

@@ -6,12 +6,16 @@
* [Ubuntu](#ubuntu)
* [Fedora](#fedora)
* [Conda](#conda)
* [Nix](#nix)
* [Windows](#windows)
* [Building from source](#building-from-source)
* [Linux](#linux)
* [macos](#macos)
* [Windows](#windows-1)
* [Visual Studio native build](#visual-studio-native-build)
* [Shell autocompletion scripts](#shell-autocompletion-scripts)
* [Bash](#bash)
* [Zsh](#zsh)
<!-- tocstop -->
@@ -20,7 +24,7 @@
#### Ubuntu
```bash
# Currently supported Ubuntu versions are Focal, Jammy and Kinetic
# Currently supported Ubuntu versions are Focal, Jammy and Mantic
sudo add-apt-repository ppa:bkryza/clang-uml
sudo apt update
sudo apt install clang-uml
@@ -29,13 +33,17 @@ 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
wget https://github.com/bkryza/clang-uml/releases/download/0.5.1/clang-uml-0.5.1-1.fc37.x86_64.rpm
sudo dnf install ./clang-uml-0.5.1-1.fc37.x86_64.rpm
# Fedora 38
wget https://github.com/bkryza/clang-uml/releases/download/0.5.1/clang-uml-0.5.1-1.fc38.x86_64.rpm
sudo dnf install ./clang-uml-0.5.1-1.fc38.x86_64.rpm
# Fedora 39
wget https://github.com/bkryza/clang-uml/releases/download/0.5.1/clang-uml-0.5.1-1.fc39.x86_64.rpm
sudo dnf install ./clang-uml-0.5.1-1.fc39.x86_64.rpm
```
#### Conda
@@ -46,6 +54,32 @@ conda config --set channel_priority strict
conda install -c bkryza/label/clang-uml clang-uml
```
#### Nix
You can use the version packaged in nixpkgs like this:
Currently clang-uml version 0.5.1 is available in nixos-unstable and nixos-24.05
```bash
nix-shell -p clang-uml
```
Or you can build it by yourself
```bash
# To build it by yourself
git clone https://github.com/bkryza/clang-uml
# To build using nix flakes
nix --extra-experimental-features 'nix-command flakes' build
# or without nix flakes
nix-build -E 'with import <nixpkgs> { }; callPackage ./packaging/nix { }'
```
Or if you have flake enabled, you can also directly run
```bash
nix run github:bkryza/clang-uml
```
#### Windows
Download and run the latest Windows installer from
@@ -57,8 +91,8 @@ Download and run the latest Windows installer from
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
# Ubuntu (Clang version will vary depending on Ubuntu version - below example is for Ubuntu 22.04)
apt install make gcc g++ ccache cmake libyaml-cpp-dev llvm-15 clang-15 libclang-15-dev libclang-cpp15-dev clang-format-15
```
Then proceed with building the sources:
@@ -71,11 +105,20 @@ make release
release/src/clang-uml --help
# To build using a specific installed version of LLVM use:
LLVM_VERSION=14 make release
LLVM_VERSION=16 make release
# or specify a path to a specific llvm-config binary, e.g.:
LLVM_CONFIG_PATH=/usr/bin/llvm-config-16 make release
# or directly specify the path where LLVMConfig.cmake can be found on your system, e.g.:
CMAKE_PREFIX=/usr/lib/llvm-16/lib/cmake/llvm make release
# Optionally
# By default clang-uml is linked against shared LLVM libraries, this can be changed using:
LLVM_SHARED=OFF LLVM_VERSION=16 make release
# Optionally, to install in default prefix
make install
# or
# or to install in custom prefix
make install DESTDIR=/opt/clang-uml
# or simply
export PATH=$PATH:$PWD/release
```
@@ -85,15 +128,17 @@ export PATH=$PATH:$PWD/release
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
export CXX=/usr/local/opt/llvm/bin/clang++
LLVM_VERSION=16 make release
# or, if this fails, try:
CMAKE_PREFIX=/usr/local/opt/llvm/lib/cmake/llvm make release
```
#### Windows
##### Visual Studio native build
These steps present how to build and use `clang-uml` natively using Visual Studio only.
These steps present how to build and use `clang-uml` natively using Microsoft Visual Studio only.
First, install the following dependencies manually:
@@ -155,10 +200,11 @@ 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)
clang-uml 0.5.2
Copyright (C) 2021-2024 Bartek Kryza <bkryza@gmail.com>
Linux x86_64 6.5.0-21-generic
Built against LLVM/Clang libraries version: 17.0.6
Using LLVM/Clang libraries version: Ubuntu clang version 17.0.6
```
Finally, remove the temporary build directory:
@@ -166,3 +212,60 @@ Finally, remove the temporary build directory:
```bash
rm -r C:\clang-uml-tmp
```
### Shell autocompletion scripts
For `Linux` and `macos`, Bash and Zsh autocomplete scripts are available, and
if `clang-uml` is installed from a distribution package they should work
out of the box. When installing `clang-uml` from sources the files need to be
installed manually. The completion scripts are available in directory:
* [`packaging/autocomplete`](./packaging/autocomplete)
#### Bash
The `clang-uml` script can be either directly loaded to the
current Bash session using:
```shell
source clang-uml
```
or the script can be copied to `/usr/share/bash-completion/completions/`
or `/etc/bash_completion.d` on Linux or to `/usr/local/etc/bash_completion.d` on
`macos` with `Homebrew`.
```shell
sudo cp packaging/autocomplete/clang-uml /usr/share/bash-completion/completions/
```
Make sure autocompletion is enabled in your `~/.bashrc` or `~/.bash_profile`:
```shell
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
```
On OSX you might need to install `bash-completion` using Homebrew:
```shell
brew install bash-completion
```
Make sure to the following lines are uncommented in the `~/.bashrc`:
```shell
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
```
#### Zsh
In Zsh, the `_clang-uml` Zsh completion file must be copied to one of the
folders under `$FPATH` variable, and the Zsh terminal should be reopened.
For testing, `_clang-uml` completion function can be updated without
restarting Zsh:
```shell
# Copy _clang-uml somewhere under $FPATH
$ unfunction _clang-uml
$ autoload -U _clang-uml
```

View File

@@ -6,16 +6,22 @@
<!-- tocstop -->
`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.
`clang-uml` in combination with PlantUML and MermaidJS 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 diagram
elements simply add this to your `.clang-uml` file:
For instance to generate links to GitHub repository directly for most of diagram elements simple add this to your
`.clang-uml` file:
```yaml
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 %}'
tooltip: '{% if "comment" in element %}{{ abbrv(trim(replace(element.comment.formatted, "\n+", " ")), 256) }}{% else %}{{ element.name }}{% endif %}'
```
You can open example diagram [here](https://raw.githubusercontent.com/bkryza/clang-uml/master/docs/test_cases/t00014_class.svg) to see how it works in action.
Full documentation on how to use the [inja](https://github.com/pantor/inja)
template engine in `clang-uml` configuration files can be found
[here](./jinja_templates.md).

View File

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

15
docs/license.md Normal file
View File

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

View File

@@ -6,16 +6,12 @@
<!-- tocstop -->
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.
Package diagrams are simple diagrams, which can be useful to visualize a high
level structure of a C++ project, by rendering project's namespaces,
subdirectories or modules 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:
@@ -31,7 +27,7 @@ diagrams:
```
For instance the following C++ code:
```
```cpp
namespace A::AA {
namespace A1 {
struct CA {
@@ -152,6 +148,38 @@ template <typename T> std::map<T, std::shared_ptr<A::AA::A13::CM>> cm()
}
```
generates the following diagram:
results the following diagram:
![package_deps](./test_cases/t30002_package.svg)
By default, packages are generated from C++ namespaces in the code. However,
they can also be generated from the subdirectories in the filesystem tree or
based on C++20 modules
Subdirectory based packages can be enabled by adding the following option to
the configuration file:
```yaml
package_type: directory
```
for example check out this diagram (you can click on package names to see the
corresponding source directory):
![t30011_package](./test_cases/t30011_package.svg)
Module based packages can be enabled using the following option:
```yaml
package_type: module
```
for example check out this diagram (you can click on package names to see the
corresponding module source):
![t30014_package](./test_cases/t30012_package.svg)
Diagrams can be rendered relative to a specific module using `using_module`
option:
```yaml
using_module: mod1.mod2
```

View File

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

View File

@@ -3,10 +3,14 @@
<!-- toc -->
* [Sequence diagram overview](#sequence-diagram-overview)
* [Specifying diagram entry point](#specifying-diagram-entry-point)
* [Specifying diagram location constraints](#specifying-diagram-location-constraints)
* [Grouping free functions by file](#grouping-free-functions-by-file)
* [Lambda expressions in sequence diagrams](#lambda-expressions-in-sequence-diagrams)
* [Customizing participants order](#customizing-participants-order)
* [Generating return types](#generating-return-types)
* [Generating condition statements](#generating-condition-statements)
* [Injecting call expressions manually through comments](#injecting-call-expressions-manually-through-comments)
* [Including comments in sequence diagrams](#including-comments-in-sequence-diagrams)
<!-- tocstop -->
@@ -15,7 +19,7 @@ The minimal config required to generate a sequence diagram is presented below:
# Path to the directory where `compile_commands.json` can be found
compilation_database_dir: _build
# Output directory for the diagrams
output_directory: puml
output_directory: diagrams
# Diagrams definitions
diagrams:
# Diagram name
@@ -43,72 +47,108 @@ 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
`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 or MermaidJS `alt` or `loop`
blocks but wrapped in `[`, `]` brackets
* Lambda expressions are generated as standalone participants, whose name
comprises the parent context where they are defined and the exact source code
location
## Specifying diagram location constraints
Sequence diagrams require specification of location constraints in order to
determine, which call chains should be included in the diagram. Currently,
there are 3 types of constraints:
* `from` - will include all message call chains, which start at the
locations specified in this constraint (this was previously named
`start_from`)
* `to` - will include all message call chains, which end at the specified
locations
* `from_to` - will include all call chains, which start and end at the specified
locations
Currently, the constraints can be a method or a free function, both specified
using the full signature of the function, e.g.:
## Specifying diagram entry point
Sequence diagrams require an entry point for the diagram in order to determine, at which point in the code the sequence
diagram should start. Currently, the entry point can only be a method or a free function, both specified using `start_from`
configuration property, for instance:
```yaml
start_from:
- function: "main(int,char**)"
from:
- function: "main(int,const char**)"
```
or
```yaml
start_from:
- function: "clanguml::sequence_diagram::visitor::translation_unit_visitor::VisitCXXRecordDecl(clang::CXXRecordDecl *)"
to:
- 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:
The locations must be fully qualified, and they must match exactly the string
representation of a given function or method in the `clang-uml` model.
In case of the `from_to` constraint, it is necessary to provide both `from`
and `to` locations as follows:
```yaml
from_to:
- [function: "clanguml::t20034::D::d2()",
function: "clanguml::t20034::A::a2()"]
```
To find the exact function signature, which can be used as a `from` location,
run `clang-uml` as follows (assuming the function of interest is called `main`):
```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
clang-uml --print-from -n main_sequence | grep main
```
Then you just need to copy and paste the signature exactly and rerun `clang-uml`.
or to get all possible `to` locations, run:
```bash
clang-uml --print-to -n main_sequence | grep main
```
Command line flags `--print-from` and `--print-to` will print on stdout all
functions and methods available in the diagram model, and each line of this
output can be directly used as a value of `from`, `from_to` or `to`
properties in the config file.
Since that list can be quite large, it's best to filter the output to limit
the number of lines to a subset of possible candidates.
## Grouping free functions by file
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
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:
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
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
not be generated
* If the lambda is passed as template argument in instantiation it will not
be generated
Another issue is the naming of lambda participants. Currently, each lambda is rendered in the diagram as a separate
class whose name is composed of the lambda location in the code (the only unique way of identifying lambdas I was able
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>
@@ -208,39 +248,140 @@ void tmain()
}
```
generates the following diagram:
results in 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:
In case lambda expressions are redundant and we are only interested in the calls
generate from the lambda expressions, it is possible to inline lambda
expressions in the generated diagrams by specifying the following option:
```yaml
inline_lambda_messages: true
```
For example compare the test cases [t20012](test_cases/t20012.md) and
[t20052](test_cases/t20052.md).
## 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:
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
t20029_sequence:
type: sequence
glob:
- ../../tests/t20029/t20029.cc
- t20029.cc
include:
namespaces:
- clanguml::t20029
exclude:
access:
- private
using_namespace:
- clanguml::t20029
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 &&)
- "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 &&)"
```
## Generating return types
By default, return messages do not contain the return type information from
the function or method. Instead, if the result is void there is no return
arrow from the activity representing the function body.
It is however possible to enable rendering of return types, by adding the
following configuration option:
```yaml
generate_return_types: true
```
This option only affects the `plantuml` and `mermaid` generators, in `json`
generator `return_type` property is always present in the message nodes.
The diagram below presents what it looks like in a PlantUML generated diagram:
![extension](test_cases/t20032_sequence.svg)
## Generating condition statements
Sometimes, it is useful to include actual condition statements (for instance
contents of the `if()` condition in the `alt` or `loop` blocks in the sequence
diagrams, to make them more readable.
This can be enabled using the following option:
```yaml
generate_condition_statements: true
```
An example of a diagram with this feature enabled is presented below:
![extension](test_cases/t20033_sequence.svg)
## Injecting call expressions manually through comments
In some cases, `clang-uml` is not yet able to discover a call expression target
in some line of code. This can include passing function or method address to
some executor (e.g. thread), async calls etc.
However, a call expression can be injected manually through a comment
directive
```cpp
// \uml{note CALLEE}
```
It should be placed in the comment just before such line of code, for example:
```cpp
// \uml{call clanguml::t20038::B::bbb()}
auto bbb_future = std::async(std::launch::deferred, &B::bbb, b);
```
also see the [t20038](test_cases/t20038.md) test case.
Please note that the callee must have fully qualified name including complete
namespace.
In order to enable this, the `.clang-uml` must contain the following option:
```yaml
add_compile_flags:
- -fparse-all-comments
```
otherwise Clang will skip these comments during AST traversal.
## Including comments in sequence diagrams
`clang-uml` can add code comments placed directly before or next to a call
expression as notes in the diagram (see for instance
[t20038](test_cases/t20038_sequence.svg)).
This however is not enabled by default. In order to enable this feature it is
necessary to first of all force Clang to parse all comments in the source
code by adding the following compile flag at the top of `.clang-uml`:
```yaml
add_compile_flags:
- -fparse-all-comments
```
or adding it to the `compile_commands.json` database somehow directly.
Another option needed to generate these comments in the diagram is to set
```yaml
generate_message_comments: true
```
for each sequence diagram, which should include these comments.
In case only selected messages should have some specific comments, instead
of enabling the `generate_message_comments` option, it is possible to use
`\\uml{note TEXT}` directive in the comment above the expression, see
[t20001](test_cases/t20001_sequence.svg).

View File

@@ -1,7 +1,13 @@
# Test cases index
* [Class diagrams](#class-diagrams)
* [Sequence diagrams](#sequence-diagrams)
* [Package diagrams](#package-diagrams)
* [Include diagrams](#include-diagrams)
* [Configuration diagrams](#configuration-diagrams)
## Class diagrams
* [t00002](./test_cases/t00002.md) - Basic class inheritance
* [t00003](./test_cases/t00003.md) - Class field and methods
* [t00003](./test_cases/t00003.md) - Class fields and methods
* [t00004](./test_cases/t00004.md) - Nested classes and enums
* [t00005](./test_cases/t00005.md) - Basic class field relationships
* [t00006](./test_cases/t00006.md) - Class field relationships inferred from templates
@@ -58,6 +64,26 @@
* [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
* [t00061](./test_cases/t00061.md) - Paths diagram filter test case
* [t00062](./test_cases/t00062.md) - Template specialization matching based on deduced context
* [t00063](./test_cases/t00063.md) - Element types diagram filter test case
* [t00064](./test_cases/t00064.md) - Template type list test case
* [t00065](./test_cases/t00065.md) - Class diagram with packages from directory structure
* [t00066](./test_cases/t00066.md) - Class fields and methods without grouping and sorting
* [t00067](./test_cases/t00067.md) - Class method type filter test case
* [t00068](./test_cases/t00068.md) - Context filter radius parameter test case
* [t00069](./test_cases/t00069.md) - Coroutine methods in class diagrams
* [t00070](./test_cases/t00070.md) - Diagram filter based on C++20 modules
* [t00071](./test_cases/t00071.md) - Class diagram with C++20 modules generated as packages
* [t00072](./test_cases/t00072.md) - Class diagram with C++20 module partitions generated as packages
* [t00073](./test_cases/t00073.md) - Class diagram for template overload pattern
* [t00074](./test_cases/t00074.md) - Test case for rendering concepts without requirements
* [t00075](./test_cases/t00075.md) - Test case for class diagram styles in config file
* [t00076](./test_cases/t00076.md) - Test case for context diagram with inward direction flag
* [t00077](./test_cases/t00077.md) - Test case for context diagram with outward direction flag
* [t00078](./test_cases/t00078.md) - Test case for context diagram with relationships option
* [t00079](./test_cases/t00079.md) - Test case for context diagram exclude filter with relationships option
## Sequence diagrams
* [t20001](./test_cases/t20001.md) - Basic sequence diagram test case
* [t20002](./test_cases/t20002.md) - Free function sequence diagram test case
@@ -88,6 +114,31 @@
* [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
* [t20030](./test_cases/t20030.md) - Constructor and operator call test case
* [t20031](./test_cases/t20031.md) - Callee type sequence diagram filter test case
* [t20032](./test_cases/t20032.md) - Return type generation option sequence diagram test case
* [t20033](./test_cases/t20033.md) - Control statement text in sequence diagram test case
* [t20034](./test_cases/t20034.md) - Test case for rendering all call chains from one activity to another (from_to)
* [t20035](./test_cases/t20035.md) - from_to sequence diagram test case with free functions
* [t20036](./test_cases/t20036.md) - Test case for rendering all call chains leading to an activity (to)
* [t20037](./test_cases/t20037.md) - Test case checking if activities in static variable declarations appear only once
* [t20038](./test_cases/t20038.md) - Sequence diagram comment decorator test case
* [t20039](./test_cases/t20039.md) - Test case for type aliases config option in sequence diagrams
* [t20040](./test_cases/t20040.md) - Test case for recursive variadic template function call
* [t20041](./test_cases/t20041.md) - Test case for recursive variadic template class call
* [t20042](./test_cases/t20042.md) - Test case for template overload pattern
* [t20043](./test_cases/t20043.md) - Test case for elements diagram filter in sequence diagrams
* [t20044](./test_cases/t20044.md) - Test case for template method call expressions with callables
* [t20045](./test_cases/t20045.md) - Test case for template function call expressions with callables
* [t20046](./test_cases/t20046.md) - Test case for call expressions in nested lambdas
* [t20047](./test_cases/t20047.md) - Test case for 'call' comment directive
* [t20048](./test_cases/t20048.md) - Test case for message comments
* [t20049](./test_cases/t20049.md) - Test case for CUDA kernel calls
* [t20050](./test_cases/t20050.md) - Test case for CUDA kernel calls with participants combined to file
* [t20051](./test_cases/t20051.md) - Test case for CUDA calls callee_type filter
* [t20052](./test_cases/t20052.md) - Test case for inlining lambda operator calls
* [t20053](./test_cases/t20053.md) - Test case for inlining nested lambda operator calls
* [t20054](./test_cases/t20054.md) - Test case for sequence diagram with nested classes
## Package diagrams
* [t30001](./test_cases/t30001.md) - Basic package diagram test case
* [t30002](./test_cases/t30002.md) - Package dependency test case
@@ -98,6 +149,12 @@
* [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
* [t30010](./test_cases/t30010.md) - Package diagram with packages from directory structure
* [t30011](./test_cases/t30011.md) - Package diagram with packages from directory structure for plain C
* [t30012](./test_cases/t30012.md) - C++20 modules package diagram test
* [t30013](./test_cases/t30013.md) - C++20 modules package dependencies diagram test
* [t30014](./test_cases/t30014.md) - C++20 modules package diagram test with partitions
* [t30015](./test_cases/t30015.md) - C++20 modules package diagram test with partition dependencies
## Include diagrams
* [t40001](./test_cases/t40001.md) - Basic include graph diagram test case
* [t40002](./test_cases/t40002.md) - Cyclic include graph diagram test case

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

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

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

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="398px" preserveAspectRatio="none" style="width:347px;height:398px;" version="1.1" viewBox="0 0 347 398" width="347px" zoomAndPan="magnify">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="486px" preserveAspectRatio="none" style="width:347px;height:486px;" version="1.1" viewBox="0 0 347 486" width="347px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1whaiqs2lv964" width="300%" x="-1" y="-1">
<filter height="300%" id="f1l6ylid2y8ngi" 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,115 +9,228 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1whaiqs2lv964)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1l6ylid2y8ngi)" height="468.9453" id="C_0010975613308274365816" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L34" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L34" xlink:show="new" xlink:title="public_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="45"/>
<ellipse cx="18" cy="50" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<ellipse cx="18" cy="50" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L34" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="27" y="53.2104">A() = default : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L42" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L42" xlink:show="new" xlink:title="protected_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L10" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L10" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="57.8047"/>
<polygon fill="none" points="18,57.8047,22,61.8047,18,65.8047,14,61.8047" style="stroke: #B38D22; stroke-width: 1.0;"/>
<ellipse cx="18" cy="62.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L42" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L10" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L10" xlink:show="new" xlink:title="A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="27" y="66.0151">A(int i) : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L51" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L51" xlink:show="new" xlink:title="private_member" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L21" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L21" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="70.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="72.6094"/>
<ellipse cx="18" cy="75.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L51" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L21" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L21" xlink:show="new" xlink:title="A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="27" y="78.8198">A(A &amp;&amp;) = default : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L52" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="a_" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L22" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L22" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="83.4141"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="85.4141"/>
<ellipse cx="18" cy="88.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L52" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L22" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L22" xlink:show="new" xlink:title="A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="165" x="27" y="91.6245">A(const A &amp;) = deleted : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L52" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L52" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L52" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="c_" xlink:type="simple">
<ellipse cx="18" cy="101.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="27" y="104.4292">A&lt;T&gt;(T t) : void</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L23" target="_top" title="~A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L23" 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="109.0234"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="111.0234"/>
<ellipse cx="18" cy="114.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L52" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L23" target="_top" title="~A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L23" xlink:show="new" xlink:title="~A" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="27" y="117.2339">~A() = default : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L35" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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;"/>
<line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8" x2="335" y1="123.8281" y2="123.8281"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L36" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L36" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="129.8281"/>
<ellipse cx="18" cy="134.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L35" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L36" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L36" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="219" x="27" y="138.0386">operator=(A &amp;&amp; other) noexcept : A &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L36" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L37" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L37" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="142.6328"/>
<ellipse cx="18" cy="147.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L36" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L37" target="_top" title="operator=" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L37" xlink:show="new" xlink:title="operator=" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="27" y="150.8433">operator=(A &amp; other) noexcept : A &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L37" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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;"/>
<line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8" x2="335" y1="157.4375" y2="157.4375"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L30" target="_top" title="operator++" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L30" xlink:show="new" xlink:title="operator++" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="163.4375"/>
<ellipse cx="18" cy="168.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L37" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L30" target="_top" title="operator++" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L30" xlink:show="new" xlink:title="operator++" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="27" y="171.6479">operator++() : A &amp;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="335" y1="162.2422" y2="162.2422"/>
<ellipse cx="18" cy="173.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="106" x="27" y="176.4526">A() = default : void</text>
<ellipse cx="18" cy="186.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="71" x="27" y="189.2573">A(int i) : void</text>
<ellipse cx="18" cy="198.8516" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="27" y="202.062">A(A &amp;&amp; ) = default : void</text>
<ellipse cx="18" cy="211.6563" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="166" x="27" y="214.8667">A(const A &amp; ) = default : void</text>
<ellipse cx="18" cy="224.4609" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="27" y="227.6714">~A() = default : void</text>
<ellipse cx="18" cy="237.2656" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="27" y="240.4761">basic_method() : void</text>
<ellipse cx="18" cy="250.0703" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="114" x="27" y="253.2808">static_method() : int</text>
<ellipse cx="18" cy="262.875" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="158" x="27" y="266.0854">const_method() const : void</text>
<ellipse cx="18" cy="275.6797" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="27" y="278.8901">auto_method() : int</text>
<ellipse cx="18" cy="288.4844" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="27" y="291.6948">double_int(const int i) : int</text>
<ellipse cx="18" cy="301.2891" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="27" y="304.4995">sum(const double a, const double b) : int</text>
<ellipse cx="18" cy="314.0938" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="27" y="317.3042">default_int(int i = 12) : int</text>
<ellipse cx="18" cy="326.8984" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="303" x="27" y="330.1089">default_string(int i, std::string s = "abc") : std::string</text>
<ellipse cx="18" cy="339.7031" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="137" x="27" y="342.9136">create_from_int(int i) : A</text>
<polygon fill="#FFFF44" points="18,347.5078,22,351.5078,18,355.5078,14,351.5078" style="stroke: #B38D22; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="27" y="355.7183">protected_method() : void</text>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="362.3125"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="131" x="27" y="368.5229">private_method() : void</text>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L44" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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;"/>
<line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="8" x2="335" y1="178.2422" y2="178.2422"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L28" target="_top" title="auto_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L28" xlink:show="new" xlink:title="auto_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="184.2422"/>
<ellipse cx="18" cy="189.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00003/t00003.cc#L44" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L28" target="_top" title="auto_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L28" xlink:show="new" xlink:title="auto_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="27" y="192.4526">auto_method() : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L25" target="_top" title="basic_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L25" xlink:show="new" xlink:title="basic_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="197.0469"/>
<ellipse cx="18" cy="202.0469" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L25" target="_top" title="basic_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L25" xlink:show="new" xlink:title="basic_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="27" y="205.2573">basic_method() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L27" target="_top" title="const_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L27" xlink:show="new" xlink:title="const_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="209.8516"/>
<ellipse cx="18" cy="214.8516" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L27" target="_top" title="const_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L27" xlink:show="new" xlink:title="const_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="158" x="27" y="218.062">const_method() const : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L50" target="_top" title="create_from_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L50" xlink:show="new" xlink:title="create_from_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="222.6563"/>
<ellipse cx="18" cy="227.6563" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L50" target="_top" title="create_from_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L50" xlink:show="new" xlink:title="create_from_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="137" x="27" y="230.8667">create_from_int(int i) : A</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L44" target="_top" title="default_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L44" xlink:show="new" xlink:title="default_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="235.4609"/>
<ellipse cx="18" cy="240.4609" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L44" target="_top" title="default_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L44" xlink:show="new" xlink:title="default_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="27" y="243.6714">default_int(int i = 12) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L45" target="_top" title="default_string" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L45" xlink:show="new" xlink:title="default_string" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="248.2656"/>
<ellipse cx="18" cy="253.2656" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L45" target="_top" title="default_string" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L45" xlink:show="new" xlink:title="default_string" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="303" x="27" y="256.4761">default_string(int i, std::string s = "abc") : std::string</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L41" target="_top" title="double_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L41" xlink:show="new" xlink:title="double_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="261.0703"/>
<ellipse cx="18" cy="266.0703" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L41" target="_top" title="double_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L41" xlink:show="new" xlink:title="double_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="27" y="269.2808">double_int(const int i) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L67" target="_top" title="private_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L67" xlink:show="new" xlink:title="private_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="273.875"/>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="275.875"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L67" target="_top" title="private_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L67" xlink:show="new" xlink:title="private_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="131" x="27" y="282.0854">private_method() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L58" target="_top" title="protected_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L58" xlink:show="new" xlink:title="protected_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="286.6797"/>
<polygon fill="#FFFF44" points="18,286.6797,22,290.6797,18,294.6797,14,290.6797" style="stroke: #B38D22; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L58" target="_top" title="protected_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L58" xlink:show="new" xlink:title="protected_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="27" y="294.8901">protected_method() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L39" target="_top" title="size" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L39" xlink:show="new" xlink:title="size" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="299.4844"/>
<ellipse cx="18" cy="304.4844" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L39" target="_top" title="size" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L39" xlink:show="new" xlink:title="size" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="27" y="307.6948">size() constexpr const : std::size_t</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L26" target="_top" title="static_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L26" xlink:show="new" xlink:title="static_method" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="312.2891"/>
<ellipse cx="18" cy="317.2891" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L26" target="_top" title="static_method" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L26" xlink:show="new" xlink:title="static_method" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="114" x="27" y="320.4995">static_method() : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L42" target="_top" title="sum" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L42" xlink:show="new" xlink:title="sum" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="325.0938"/>
<ellipse cx="18" cy="330.0938" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L42" target="_top" title="sum" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L42" xlink:show="new" xlink:title="sum" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="27" y="333.3042">sum(const double a, const double b) : int</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="8" x2="335" y1="339.8984" y2="339.8984"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="a_" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="345.8984"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="347.8984"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" target="_top" title="a_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="a_" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="27" y="354.1089">a_ : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L55" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L55" xlink:show="new" xlink:title="auto_member" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="358.7031"/>
<ellipse cx="18" cy="363.7031" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L55" target="_top" title="auto_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L55" xlink:show="new" xlink:title="auto_member" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="206" x="27" y="366.9136">auto_member : const unsigned long</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="b_" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="371.5078"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="373.5078"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" target="_top" title="b_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="b_" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="39" x="27" y="379.7183">b_ : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="c_" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="384.3125"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="386.3125"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" target="_top" title="c_" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L70" xlink:show="new" xlink:title="c_" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="27" y="392.5229">c_ : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L62" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L62" xlink:show="new" xlink:title="compare" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="397.1172"/>
<polygon fill="#FFFF44" points="18,397.1172,22,401.1172,18,405.1172,14,401.1172" style="stroke: #B38D22; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L62" target="_top" title="compare" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L62" xlink:show="new" xlink:title="compare" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="236" x="27" y="405.3276">compare : std::function&lt;bool (const int)&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L69" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L69" xlink:show="new" xlink:title="private_member" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="409.9219"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="15" y="411.9219"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L69" target="_top" title="private_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L69" xlink:show="new" xlink:title="private_member" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="27" y="418.1323">private_member : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L60" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L60" xlink:show="new" xlink:title="protected_member" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="422.7266"/>
<polygon fill="none" points="18,422.7266,22,426.7266,18,430.7266,14,426.7266" style="stroke: #B38D22; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L60" target="_top" title="protected_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L60" xlink:show="new" xlink:title="protected_member" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="27" y="430.937">protected_member : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L52" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="public_member" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="435.5313"/>
<ellipse cx="18" cy="440.5313" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L52" target="_top" title="public_member" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L52" xlink:show="new" xlink:title="public_member" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="113" x="27" y="443.7417">public_member : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L54" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L54" xlink:show="new" xlink:title="static_const_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="448.3359"/>
<ellipse cx="18" cy="453.3359" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L54" target="_top" title="static_const_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L54" xlink:show="new" xlink:title="static_const_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="149" x="27" y="456.5464">static_const_int : const int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L53" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L53" xlink:show="new" xlink:title="static_int" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="13" y="461.1406"/>
<ellipse cx="18" cy="466.1406" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L53" target="_top" title="static_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00003/t00003.cc#L53" xlink:show="new" xlink:title="static_int" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="77" x="27" y="469.3511">static_int : int</text>
</a>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

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

After

Width:  |  Height:  |  Size: 17 KiB

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="374px" preserveAspectRatio="none" style="width:1071px;height:374px;" version="1.1" viewBox="0 0 1071 374" width="1071px" zoomAndPan="magnify">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="537px" preserveAspectRatio="none" style="width:1131px;height:537px;" version="1.1" viewBox="0 0 1131 537" width="1131px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="fxe3jfbbdcnob" width="300%" x="-1" y="-1">
<filter height="300%" id="f1gt2lekojdmfw" 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,225 +9,281 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L4" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L4" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L4" target="_top" title="Color" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L4" xlink:show="new" xlink:title="Color" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="86.4141" id="C_0008844195389762820798" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="6" y="171"/>
<ellipse cx="21" cy="187" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M25.1094,193 L17.3906,193 L17.3906,180.6094 L25.1094,180.6094 L25.1094,182.7656 L19.8438,182.7656 L19.8438,185.4375 L24.6094,185.4375 L24.6094,187.5938 L19.8438,187.5938 L19.8438,190.8438 L25.1094,190.8438 L25.1094,193 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="35" y="191.1543">Color</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="69" y1="203" y2="203"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="12" y="217.2104">Red</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="12" y="230.0151">Green</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="25" x="12" y="242.8198">Blue</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="69" y1="249.4141" y2="249.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L6" target="_top" title="B##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L6" xlink:show="new" xlink:title="B##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="69" y1="40" y2="40"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="12" y="54.2104">AA_1</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="12" y="67.0151">AA_2</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="12" y="79.8198">AA_3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="69" y1="86.4141" y2="86.4141"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L6" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L6" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="73.6094" id="C_0009860995429872413691" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="70" y="14"/>
<ellipse cx="114.75" cy="30" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M117.7188,35.6406 Q117.1406,35.9375 116.5,36.0781 Q115.8594,36.2344 115.1563,36.2344 Q112.6563,36.2344 111.3281,34.5938 Q110.0156,32.9375 110.0156,29.8125 Q110.0156,26.6875 111.3281,25.0313 Q112.6563,23.375 115.1563,23.375 Q115.8594,23.375 116.5,23.5313 Q117.1563,23.6875 117.7188,23.9844 L117.7188,26.7031 Q117.0938,26.125 116.5,25.8594 Q115.9063,25.5781 115.2813,25.5781 Q113.9375,25.5781 113.25,26.6563 Q112.5625,27.7188 112.5625,29.8125 Q112.5625,31.9063 113.25,32.9844 Q113.9375,34.0469 115.2813,34.0469 Q115.9063,34.0469 116.5,33.7813 Q117.0938,33.5 117.7188,32.9219 L117.7188,35.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="135.25" y="34.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="175" y1="46" y2="46"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="71" x2="175" y1="54" y2="54"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L10" target="_top" title="aa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L10" xlink:show="new" xlink:title="aa" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="76" y="60"/>
<ellipse cx="81" cy="65" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L13" target="_top" title="A##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L13" xlink:show="new" xlink:title="A##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L10" target="_top" title="aa" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L10" xlink:show="new" xlink:title="aa" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="40" x="90" y="68.2104">aa : AA</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L15" target="_top" title="A##AA##Lights" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L15" xlink:show="new" xlink:title="A##AA##Lights" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="106.5" x2="213.5" y1="40" y2="40"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="111.5" y="54.2104">Green</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="111.5" y="67.0151">Yellow</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="111.5" y="79.8198">Red</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="106.5" x2="213.5" y1="86.4141" y2="86.4141"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L11" target="_top" title="color" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L11" xlink:show="new" xlink:title="color" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="76" y="72.8047"/>
<ellipse cx="81" cy="77.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L17" target="_top" title="A##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L17" xlink:show="new" xlink:title="A##AA##AAA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L11" target="_top" title="color" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L11" xlink:show="new" xlink:title="color" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="80" x="90" y="81.0151">color : Color *</text>
</a>
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L24" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L24" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L8" target="_top" title="B##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L8" xlink:show="new" xlink:title="B##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="86.4141" id="C_0013041644057721012989" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="124" y="171"/>
<ellipse cx="139" cy="187" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M143.1094,193 L135.3906,193 L135.3906,180.6094 L143.1094,180.6094 L143.1094,182.7656 L137.8438,182.7656 L137.8438,185.4375 L142.6094,185.4375 L142.6094,187.5938 L137.8438,187.5938 L137.8438,190.8438 L143.1094,190.8438 L143.1094,193 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="153" y="191.1543">B::AA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="125" x2="187" y1="203" y2="203"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="130" y="217.2104">AA_1</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="130" y="230.0151">AA_2</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="130" y="242.8198">AA_3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="125" x2="187" y1="249.4141" y2="249.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L26" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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="496.5" y="328"/>
<ellipse cx="501.5" cy="333" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="73.6094" id="C_0012418199527012894198" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="203.5" y="453"/>
<ellipse cx="259.75" cy="469" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M262.7188,474.6406 Q262.1406,474.9375 261.5,475.0781 Q260.8594,475.2344 260.1563,475.2344 Q257.6563,475.2344 256.3281,473.5938 Q255.0156,471.9375 255.0156,468.8125 Q255.0156,465.6875 256.3281,464.0313 Q257.6563,462.375 260.1563,462.375 Q260.8594,462.375 261.5,462.5313 Q262.1563,462.6875 262.7188,462.9844 L262.7188,465.7031 Q262.0938,465.125 261.5,464.8594 Q260.9063,464.5781 260.2813,464.5781 Q258.9375,464.5781 258.25,465.6563 Q257.5625,466.7188 257.5625,468.8125 Q257.5625,470.9063 258.25,471.9844 Q258.9375,473.0469 260.2813,473.0469 Q260.9063,473.0469 261.5,472.7813 Q262.0938,472.5 262.7188,471.9219 L262.7188,474.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="280.25" y="473.1543">A</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="204.5" x2="331.5" y1="485" y2="485"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L26" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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="510.5" y="336.2104">t : T</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L16" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L16" xlink:show="new" xlink:title="foo" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="209.5" y="491"/>
<ellipse cx="214.5" cy="496" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L39" target="_top" title="b_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L39" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L16" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L16" xlink:show="new" xlink:title="foo" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="96" x="223.5" y="499.2104">foo() const : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L39" target="_top" title="b_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L39" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L27" target="_top" title="foo2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L27" xlink:show="new" xlink:title="foo2" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="209.5" y="503.8047"/>
<ellipse cx="214.5" cy="508.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="491.5" x2="594.5" y1="355.6094" y2="355.6094"/>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L28" target="_top" title="C##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L28" xlink:show="new" xlink:title="C##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L27" target="_top" title="foo2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L27" xlink:show="new" xlink:title="foo2" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="103" x="223.5" y="512.0151">foo2() const : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L29" target="_top" title="C##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L29" xlink:show="new" xlink:title="C##AA##AAA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="204.5" x2="331.5" y1="518.6094" y2="518.6094"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L18" target="_top" title="A##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L18" xlink:show="new" xlink:title="A##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="48" id="C_0013939998749822876416" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="236" y="331"/>
<ellipse cx="251" cy="347" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M253.9688,352.6406 Q253.3906,352.9375 252.75,353.0781 Q252.1094,353.2344 251.4063,353.2344 Q248.9063,353.2344 247.5781,351.5938 Q246.2656,349.9375 246.2656,346.8125 Q246.2656,343.6875 247.5781,342.0313 Q248.9063,340.375 251.4063,340.375 Q252.1094,340.375 252.75,340.5313 Q253.4063,340.6875 253.9688,340.9844 L253.9688,343.7031 Q253.3438,343.125 252.75,342.8594 Q252.1563,342.5781 251.5313,342.5781 Q250.1875,342.5781 249.5,343.6563 Q248.8125,344.7188 248.8125,346.8125 Q248.8125,348.9063 249.5,349.9844 Q250.1875,351.0469 251.5313,351.0469 Q252.1563,351.0469 252.75,350.7813 Q253.3438,350.5 253.9688,349.9219 L253.9688,352.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="265" y="351.1543">A::AA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="237" x2="299" y1="363" y2="363"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="237" x2="299" y1="371" y2="371"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L32" target="_top" title="C##AA##CCC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L32" xlink:show="new" xlink:title="C##AA##CCC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L20" target="_top" title="A##AA##Lights" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L20" xlink:show="new" xlink:title="A##AA##Lights" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="86.4141" id="C_0004727494996070729955" style="stroke: #A80036; stroke-width: 1.5;" width="109" x="294.5" y="171"/>
<ellipse cx="309.5" cy="187" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M313.6094,193 L305.8906,193 L305.8906,180.6094 L313.6094,180.6094 L313.6094,182.7656 L308.3438,182.7656 L308.3438,185.4375 L313.1094,185.4375 L313.1094,187.5938 L308.3438,187.5938 L308.3438,190.8438 L313.6094,190.8438 L313.6094,193 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="323.5" y="191.1543">A::AA::Lights</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="295.5" x2="402.5" y1="203" y2="203"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="300.5" y="217.2104">Green</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="36" x="300.5" y="230.0151">Yellow</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="300.5" y="242.8198">Red</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="295.5" x2="402.5" y1="249.4141" y2="249.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L35" target="_top" title="C##B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L35" xlink:show="new" xlink:title="C##B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L22" target="_top" title="A##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L22" xlink:show="new" xlink:title="A##AA##AAA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="60.8047" id="C_0011441493064034257052" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="286.5" y="20.5"/>
<ellipse cx="304.65" cy="36.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M307.6188,42.1406 Q307.0406,42.4375 306.4,42.5781 Q305.7594,42.7344 305.0563,42.7344 Q302.5563,42.7344 301.2281,41.0938 Q299.9156,39.4375 299.9156,36.3125 Q299.9156,33.1875 301.2281,31.5313 Q302.5563,29.875 305.0563,29.875 Q305.7594,29.875 306.4,30.0313 Q307.0563,30.1875 307.6188,30.4844 L307.6188,33.2031 Q306.9938,32.625 306.4,32.3594 Q305.8063,32.0781 305.1813,32.0781 Q303.8375,32.0781 303.15,33.1563 Q302.4625,34.2188 302.4625,36.3125 Q302.4625,38.4063 303.15,39.4844 Q303.8375,40.5469 305.1813,40.5469 Q305.8063,40.5469 306.4,40.2813 Q306.9938,40 307.6188,39.4219 L307.6188,42.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="319.35" y="40.6543">A::AA::AAA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="287.5" x2="388.5" y1="52.5" y2="52.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="287.5" x2="388.5" y1="60.5" y2="60.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L36" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L36" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L23" target="_top" title="lights" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L23" xlink:show="new" xlink:title="lights" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="292.5" y="66.5"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="294.5" y="68.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L36" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L36" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L23" target="_top" title="lights" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L23" xlink:show="new" xlink:title="lights" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="77" x="306.5" y="74.7104">lights : Lights</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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L41" target="_top" title="C##CC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L41" xlink:show="new" xlink:title="C##CC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L40" target="_top" title="C##B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L40" xlink:show="new" xlink:title="C##B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="48" id="C_0002302554954640607720" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="467" y="27"/>
<ellipse cx="482" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M484.9688,48.6406 Q484.3906,48.9375 483.75,49.0781 Q483.1094,49.2344 482.4063,49.2344 Q479.9063,49.2344 478.5781,47.5938 Q477.2656,45.9375 477.2656,42.8125 Q477.2656,39.6875 478.5781,38.0313 Q479.9063,36.375 482.4063,36.375 Q483.1094,36.375 483.75,36.5313 Q484.4063,36.6875 484.9688,36.9844 L484.9688,39.7031 Q484.3438,39.125 483.75,38.8594 Q483.1563,38.5781 482.5313,38.5781 Q481.1875,38.5781 480.5,39.6563 Q479.8125,40.7188 479.8125,42.8125 Q479.8125,44.9063 480.5,45.9844 Q481.1875,47.0469 482.5313,47.0469 Q483.1563,47.0469 483.75,46.7813 Q484.3438,46.5 484.9688,45.9219 L484.9688,48.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="24" x="496" 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="528" y="24"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="529" y="36.1387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="468" x2="542" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="468" x2="542" y1="67" y2="67"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L45" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L45" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L30" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L30" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="73.6094" id="C_0018226625421819521092" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="562.5" y="318"/>
<ellipse cx="601.8" cy="334" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M604.7688,339.6406 Q604.1906,339.9375 603.55,340.0781 Q602.9094,340.2344 602.2063,340.2344 Q599.7063,340.2344 598.3781,338.5938 Q597.0656,336.9375 597.0656,333.8125 Q597.0656,330.6875 598.3781,329.0313 Q599.7063,327.375 602.2063,327.375 Q602.9094,327.375 603.55,327.5313 Q604.2063,327.6875 604.7688,327.9844 L604.7688,330.7031 Q604.1438,330.125 603.55,329.8594 Q602.9563,329.5781 602.3313,329.5781 Q600.9875,329.5781 600.3,330.6563 Q599.6125,331.7188 599.6125,333.8125 Q599.6125,335.9063 600.3,336.9844 Q600.9875,338.0469 602.3313,338.0469 Q602.9563,338.0469 603.55,337.7813 Q604.1438,337.5 604.7688,336.9219 L604.7688,339.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="621.2" y="338.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="661.5" y="315"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="662.5" y="327.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="563.5" x2="666.5" y1="350" y2="350"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="563.5" x2="666.5" y1="358" y2="358"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L47" target="_top" title="D##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L47" xlink:show="new" xlink:title="D##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L44" target="_top" title="b_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L44" 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="568.5" y="364"/>
<ellipse cx="573.5" cy="369" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L49" target="_top" title="D##DD" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00004/t00004.cc#L49" xlink:show="new" xlink:title="D##DD" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fxe3jfbbdcnob)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L44" target="_top" title="b_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L44" 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="582.5" y="372.2104">b_int : B&lt;int&gt;</text>
</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"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L32" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L32" xlink:show="new" xlink:title="t" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="568.5" y="376.8047"/>
<ellipse cx="573.5" cy="381.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L32" target="_top" title="t" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L32" xlink:show="new" xlink:title="t" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="23" x="582.5" y="385.0151">t : T</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L34" target="_top" title="C##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L34" xlink:show="new" xlink:title="C##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="48" id="C_0004991521063183421232" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="657" y="190"/>
<ellipse cx="672" cy="206" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M674.9688,211.6406 Q674.3906,211.9375 673.75,212.0781 Q673.1094,212.2344 672.4063,212.2344 Q669.9063,212.2344 668.5781,210.5938 Q667.2656,208.9375 667.2656,205.8125 Q667.2656,202.6875 668.5781,201.0313 Q669.9063,199.375 672.4063,199.375 Q673.1094,199.375 673.75,199.5313 Q674.4063,199.6875 674.9688,199.9844 L674.9688,202.7031 Q674.3438,202.125 673.75,201.8594 Q673.1563,201.5781 672.5313,201.5781 Q671.1875,201.5781 670.5,202.6563 Q669.8125,203.7188 669.8125,205.8125 Q669.8125,207.9063 670.5,208.9844 Q671.1875,210.0469 672.5313,210.0469 Q673.1563,210.0469 673.75,209.7813 Q674.3438,209.5 674.9688,208.9219 L674.9688,211.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="686" y="210.1543">C::AA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="658" x2="720" y1="222" y2="222"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="658" x2="720" y1="230" y2="230"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L35" target="_top" title="C##AA##AAA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L35" xlink:show="new" xlink:title="C##AA##AAA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="48" id="C_0012782408698292006929" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="605" y="27"/>
<ellipse cx="620" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M622.9688,48.6406 Q622.3906,48.9375 621.75,49.0781 Q621.1094,49.2344 620.4063,49.2344 Q617.9063,49.2344 616.5781,47.5938 Q615.2656,45.9375 615.2656,42.8125 Q615.2656,39.6875 616.5781,38.0313 Q617.9063,36.375 620.4063,36.375 Q621.1094,36.375 621.75,36.5313 Q622.4063,36.6875 622.9688,36.9844 L622.9688,39.7031 Q622.3438,39.125 621.75,38.8594 Q621.1563,38.5781 620.5313,38.5781 Q619.1875,38.5781 618.5,39.6563 Q617.8125,40.7188 617.8125,42.8125 Q617.8125,44.9063 618.5,45.9844 Q619.1875,47.0469 620.5313,47.0469 Q621.1563,47.0469 621.75,46.7813 Q622.3438,46.5 622.9688,45.9219 L622.9688,48.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="634" y="47.1543">C::AA::AAA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="606" x2="700" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="606" x2="700" y1="67" y2="67"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L37" target="_top" title="C##AA##CCC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L37" xlink:show="new" xlink:title="C##AA##CCC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="73.6094" id="C_0000654553621116797875" style="stroke: #A80036; stroke-width: 1.5;" width="96" x="736" y="14"/>
<ellipse cx="751" cy="30" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M755.1094,36 L747.3906,36 L747.3906,23.6094 L755.1094,23.6094 L755.1094,25.7656 L749.8438,25.7656 L749.8438,28.4375 L754.6094,28.4375 L754.6094,30.5938 L749.8438,30.5938 L749.8438,33.8438 L755.1094,33.8438 L755.1094,36 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="765" y="34.1543">C::AA::CCC</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="737" x2="831" y1="46" y2="46"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="742" y="60.2104">CCC_1</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37" x="742" y="73.0151">CCC_2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="737" x2="831" y1="79.6094" y2="79.6094"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L40" target="_top" title="C##B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L40" xlink:show="new" xlink:title="C##B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="60.8047" id="C_0011050386686796671606" style="stroke: #A80036; stroke-width: 1.5;" width="68" x="439" y="183.5"/>
<ellipse cx="454" cy="199.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M456.9688,205.1406 Q456.3906,205.4375 455.75,205.5781 Q455.1094,205.7344 454.4063,205.7344 Q451.9063,205.7344 450.5781,204.0938 Q449.2656,202.4375 449.2656,199.3125 Q449.2656,196.1875 450.5781,194.5313 Q451.9063,192.875 454.4063,192.875 Q455.1094,192.875 455.75,193.0313 Q456.4063,193.1875 456.9688,193.4844 L456.9688,196.2031 Q456.3438,195.625 455.75,195.3594 Q455.1563,195.0781 454.5313,195.0781 Q453.1875,195.0781 452.5,196.1563 Q451.8125,197.2188 451.8125,199.3125 Q451.8125,201.4063 452.5,202.4844 Q453.1875,203.5469 454.5313,203.5469 Q455.1563,203.5469 455.75,203.2813 Q456.3438,203 456.9688,202.4219 L456.9688,205.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="24" x="468" y="203.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="500" y="180.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="8" x="501" y="192.6387">V</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="440" x2="506" y1="215.5" y2="215.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="440" x2="506" y1="223.5" y2="223.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L41" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L41" xlink:show="new" xlink:title="b" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="445" y="229.5"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="447" y="231.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L41" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L41" xlink:show="new" xlink:title="b" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="459" y="237.7104">b : V</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L46" target="_top" title="C##CC" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L46" xlink:show="new" xlink:title="C##CC" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="73.6094" id="C_0016299031488803029599" style="stroke: #A80036; stroke-width: 1.5;" width="64" x="756" y="177"/>
<ellipse cx="771" cy="193" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M775.1094,199 L767.3906,199 L767.3906,186.6094 L775.1094,186.6094 L775.1094,188.7656 L769.8438,188.7656 L769.8438,191.4375 L774.6094,191.4375 L774.6094,193.5938 L769.8438,193.5938 L769.8438,196.8438 L775.1094,196.8438 L775.1094,199 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="32" x="785" y="197.1543">C::CC</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="757" x2="819" y1="209" y2="209"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="29" x="762" y="223.2104">CC_1</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="29" x="762" y="236.0151">CC_2</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="757" x2="819" y1="242.6094" y2="242.6094"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L50" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L50" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="48" id="C_0004897065367017086369" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="951" y="190"/>
<ellipse cx="966" cy="206" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M968.9688,211.6406 Q968.3906,211.9375 967.75,212.0781 Q967.1094,212.2344 966.4063,212.2344 Q963.9063,212.2344 962.5781,210.5938 Q961.2656,208.9375 961.2656,205.8125 Q961.2656,202.6875 962.5781,201.0313 Q963.9063,199.375 966.4063,199.375 Q967.1094,199.375 967.75,199.5313 Q968.4063,199.6875 968.9688,199.9844 L968.9688,202.7031 Q968.3438,202.125 967.75,201.8594 Q967.1563,201.5781 966.5313,201.5781 Q965.1875,201.5781 964.5,202.6563 Q963.8125,203.7188 963.8125,205.8125 Q963.8125,207.9063 964.5,208.9844 Q965.1875,210.0469 966.5313,210.0469 Q967.1563,210.0469 967.75,209.7813 Q968.3438,209.5 968.9688,208.9219 L968.9688,211.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="52" x="980" y="210.1543">detail::D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="952" x2="1034" y1="222" y2="222"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="952" x2="1034" y1="230" y2="230"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L52" target="_top" title="D##AA" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L52" xlink:show="new" xlink:title="D##AA" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="86.4141" id="C_0012576640463341047379" style="stroke: #A80036; stroke-width: 1.5;" width="108" x="867" y="8"/>
<ellipse cx="882" cy="24" fill="#EB937F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M886.1094,30 L878.3906,30 L878.3906,17.6094 L886.1094,17.6094 L886.1094,19.7656 L880.8438,19.7656 L880.8438,22.4375 L885.6094,22.4375 L885.6094,24.5938 L880.8438,24.5938 L880.8438,27.8438 L886.1094,27.8438 L886.1094,30 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="896" y="28.1543">detail::D::AA</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="868" x2="974" y1="40" y2="40"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="873" y="54.2104">AA_1</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="873" y="67.0151">AA_2</text>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="27" x="873" y="79.8198">AA_3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="868" x2="974" y1="86.4141" y2="86.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L54" target="_top" title="D##DD" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00004/t00004.cc#L54" xlink:show="new" xlink:title="D##DD" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gt2lekojdmfw)" height="48" id="C_0004807329861420443943" style="stroke: #A80036; stroke-width: 1.5;" width="110" x="1010" y="27"/>
<ellipse cx="1025" cy="43" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1027.9688,48.6406 Q1027.3906,48.9375 1026.75,49.0781 Q1026.1094,49.2344 1025.4063,49.2344 Q1022.9063,49.2344 1021.5781,47.5938 Q1020.2656,45.9375 1020.2656,42.8125 Q1020.2656,39.6875 1021.5781,38.0313 Q1022.9063,36.375 1025.4063,36.375 Q1026.1094,36.375 1026.75,36.5313 Q1027.4063,36.6875 1027.9688,36.9844 L1027.9688,39.7031 Q1027.3438,39.125 1026.75,38.8594 Q1026.1563,38.5781 1025.5313,38.5781 Q1024.1875,38.5781 1023.5,39.6563 Q1022.8125,40.7188 1022.8125,42.8125 Q1022.8125,44.9063 1023.5,45.9844 Q1024.1875,47.0469 1025.5313,47.0469 Q1026.1563,47.0469 1026.75,46.7813 Q1027.3438,46.5 1027.9688,45.9219 L1027.9688,48.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="78" x="1039" y="47.1543">detail::D::DD</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1011" x2="1119" y1="59" y2="59"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1011" x2="1119" y1="67" y2="67"/>
</a>
<path d="M116.71,101.49 C116.32,114.48 117.02,128.38 120,141 C122.38,151.07 126.39,161.33 130.89,170.83 " fill="none" id="C_0009860995429872413691&lt;-C_0013041644057721012989" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="117.48,88.37,113.1372,94.1267,116.7807,100.3496,121.1236,94.5929,117.48,88.37" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="126" cy="133.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="16" x="133" y="137.0669">aa</text>
<path d="M158.34,170.95 C158.31,155.98 157.29,139.1 154,124 C152.41,116.72 150.09,109.26 147.41,102.03 " fill="none" id="C_0013041644057721012989-&gt;C_0009860995429872413691" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="144.7657" cy="95.4998" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="147.7814" x2="141.75" y1="102.9096" y2="88.09"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="137.3559" x2="152.1755" y1="98.5155" y2="92.4841"/>
<path d="M89.38,88.19 C80.52,99.1 71.6,111.51 65,124 C58.14,136.97 52.75,151.94 48.65,165.86 " fill="none" id="C_0009860995429872413691-&gt;C_0008844195389762820798" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="47.2,170.93,53.5127,163.3702,48.5698,166.1213,45.8187,161.1785,47.2,170.93" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="71" cy="133.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="31" x="78" y="137.0669">color</text>
<path d="M268,379.17 C268,395.28 268,417.4 268,437.57 " fill="none" id="C_0013939998749822876416-&gt;C_0012418199527012894198" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="268" cy="444.83" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="268" x2="268" y1="436.83" y2="452.83"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="276" x2="260" y1="444.83" y2="444.83"/>
<path d="M324.48,257.08 C313.22,276.41 299.99,299.1 289.17,317.66 " fill="none" id="C_0004727494996070729955-&gt;C_0013939998749822876416" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="285.6348" cy="323.7262" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="289.6596" x2="281.61" y1="316.8124" y2="330.64"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="292.5486" x2="278.721" y1="327.751" y2="319.7014"/>
<path d="M318.15,81.86 C303.86,105.09 285.64,138.7 277,171 C263.97,219.72 263.62,278.28 265.25,315.81 " fill="none" id="C_0011441493064034257052-&gt;C_0013939998749822876416" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="265.6435" cy="323.0014" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="265.2171" x2="266.07" y1="315.0128" y2="330.99"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="273.6322" x2="257.6549" y1="322.5749" y2="323.4278"/>
<path d="M340.92,94.68 C342.53,118.26 344.52,147.44 346.13,170.92 " fill="none" id="C_0011441493064034257052&lt;-C_0004727494996070729955" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="340.02,81.53,336.438,87.7886,340.8375,93.5021,344.4194,87.2436,340.02,81.53" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="347" y="130.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="357" y="137.0669">lights</text>
<path d="M500.42,75.07 C495.85,98.02 488.71,133.96 482.86,163.4 " fill="none" id="C_0002302554954640607720-&gt;C_0011050386686796671606" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="489.65,165.16,478.88,183.41,475.91,162.43,489.65,165.16" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M597.31,305.44 C573.3,239.5 531.32,124.27 513.45,75.2 " fill="none" id="C_0018226625421819521092&lt;-C_0002302554954640607720" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="601.86,317.93,603.5681,310.9241,597.758,306.6529,596.05,313.6588,601.86,317.93" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="586" cy="214.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="593" y="218.5669">b_int</text>
<path d="M676.61,238.27 C667.04,256.25 653.44,281.79 641.45,304.31 " fill="none" id="C_0004991521063183421232-&gt;C_0018226625421819521092" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="638.0064" cy="310.7768" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="641.7628" x2="634.25" y1="303.7135" y2="317.84"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="645.0696" x2="630.9432" y1="314.5332" y2="307.0204"/>
<path d="M658.16,75.07 C663.99,101.13 673.56,143.95 680.5,174.98 " fill="none" id="C_0012782408698292006929-&gt;C_0004991521063183421232" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="682.1057" cy="182.1725" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="680.3614" x2="683.85" y1="174.365" y2="189.98"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="689.9132" x2="674.2982" y1="180.4282" y2="183.9168"/>
<path d="M762.68,88.13 C747.1,114.54 726.05,150.2 710.44,176.66 " fill="none" id="C_0000654553621116797875-&gt;C_0004991521063183421232" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="706.6832" cy="183.0286" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="710.7463" x2="702.62" y1="176.1373" y2="189.92"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="713.5745" x2="699.7918" y1="187.0918" y2="178.9655"/>
<path d="M503.46,244.82 C521.98,262.94 546.02,286.48 567.04,307.05 " fill="none" id="C_0011050386686796671606-&gt;C_0018226625421819521092" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="572.3125" cy="312.2145" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="566.595" x2="578.03" y1="306.6189" y2="317.81"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="577.908" x2="566.7169" y1="306.4969" y2="317.932"/>
<path d="M755.85,242.26 C749.94,247.2 743.8,252.28 738,257 C717.12,274 693.99,292.36 673.48,308.48 " fill="none" id="C_0016299031488803029599-&gt;C_0018226625421819521092" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="667.7042" cy="313.0121" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="673.9985" x2="661.41" y1="308.0743" y2="317.95"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="672.6421" x2="662.7664" y1="319.3064" y2="306.7179"/>
<path d="M939.92,94.3 C951.29,119.73 965.62,151.77 976.52,176.15 " fill="none" id="C_0012576640463341047379-&gt;C_0004897065367017086369" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="979.3904" cy="182.5687" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="976.1208" x2="982.66" y1="175.2673" y2="189.87"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="986.6917" x2="972.089" y1="179.299" y2="185.8383"/>
<path d="M1054.68,75.07 C1042.87,101.49 1023.35,145.13 1009.43,176.25 " fill="none" id="C_0004807329861420443943-&gt;C_0004897065367017086369" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="1006.5696" cy="182.6787" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="1009.8392" x2="1003.3" y1="175.3773" y2="189.98"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="1013.871" x2="999.2683" y1="185.9483" y2="179.409"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 46 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 48 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="f1q17lix0ibvnl" width="300%" x="-1" y="-1">
<filter height="300%" id="ffabwrnsnmcqa" 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,238 +9,238 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L3" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L3" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L3" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L3" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0000770847151166242555" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L6" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L6" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L5" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L5" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0015275406858672700331" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L9" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L9" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L7" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L7" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0007745411075680519262" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L12" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L12" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L9" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L9" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0013884796726689493544" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L15" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L15" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L11" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L11" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0007103681095374757269" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L18" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L18" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L13" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L13" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0006181754862849854182" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L21" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L21" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L15" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L15" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0007833183087077891503" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L24" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L24" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L17" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L17" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0011525386408433893405" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L27" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L27" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L19" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L19" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0000877453852400691446" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L30" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L30" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L21" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L21" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0002706640095757202600" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L33" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L33" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L23" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L23" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="48" id="C_0017432955118643460073" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L36" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L36" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q17lix0ibvnl)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L25" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L25" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ffabwrnsnmcqa)" height="240.0703" id="C_0005045539258985153690" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="508" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.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="303" y="46"/>
<ellipse cx="308" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L31" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="54"/>
<ellipse cx="308" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.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="317" y="54.2104">some_int : int</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L31" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="62.2104">a : A</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.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="303" y="58.8047"/>
<ellipse cx="308" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L32" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="66.8047"/>
<ellipse cx="308" cy="71.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.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="317" y="67.0151">some_int_pointer : int *</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L32" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="75.0151">b : B *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.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="303" y="71.6094"/>
<ellipse cx="308" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L33" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="79.6094"/>
<ellipse cx="308" cy="84.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.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="317" y="79.8198">some_int_pointer_pointer : int **</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L33" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="87.8198">c : C &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.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="303" y="84.4141"/>
<ellipse cx="308" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L34" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="92.4141"/>
<ellipse cx="308" cy="97.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.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="317" y="92.6245">some_int_reference : int &amp;</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L34" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="100.6245">d : const D *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L42" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L42" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L35" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="105.2188"/>
<ellipse cx="308" cy="110.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L42" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L42" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L35" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="113.4292">e : const E &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L43" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L43" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L36" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="118.0234"/>
<ellipse cx="308" cy="123.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L43" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L43" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L36" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="126.2339">f : F &amp;&amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L44" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L44" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L37" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="130.8281"/>
<ellipse cx="308" cy="135.8281" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L44" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L44" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L37" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="139.0386">g : G **</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L45" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L45" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L38" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="143.6328"/>
<ellipse cx="308" cy="148.6328" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L45" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L45" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L38" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="151.8433">h : H ***</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L46" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L46" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L39" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="156.4375"/>
<ellipse cx="308" cy="161.4375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L46" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L46" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L39" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="164.6479">i : I *&amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L47" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L47" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L40" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="169.2422"/>
<ellipse cx="308" cy="174.2422" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L47" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L47" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L40" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="177.4526">j : volatile J *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L48" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L48" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L41" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="182.0469"/>
<ellipse cx="308" cy="187.0469" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L48" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L48" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L41" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="190.2573">k : K *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L49" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L49" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L27" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="194.8516"/>
<ellipse cx="308" cy="199.8516" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L49" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L49" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L27" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="203.062">some_int : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L50" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L50" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L28" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="207.6563"/>
<ellipse cx="308" cy="212.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L50" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L50" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L28" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="215.8667">some_int_pointer : int *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L51" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L51" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L29" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="220.4609"/>
<ellipse cx="308" cy="225.4609" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L51" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L51" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L29" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="228.6714">some_int_pointer_pointer : int **</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L52" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L52" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L30" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="233.2656"/>
<ellipse cx="308" cy="238.2656" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L52" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00005/t00005.cc#L52" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00005/t00005.cc#L30" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="241.4761">some_int_reference : int &amp;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="298" x2="508" y1="240.0703" y2="240.0703"/>
<path d="M285.16,195.65 C219.46,233.13 136.34,281.08 63,325 C57.55,328.26 51.69,331.86 46.28,335.22 " fill="none" id="C_0000630692407373144211&lt;-C_0000096355893895780319" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M285.16,195.65 C219.46,233.13 136.34,281.08 63,325 C57.55,328.26 51.69,331.86 46.28,335.22 " fill="none" id="C_0005045539258985153690&lt;-C_0000770847151166242555" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="296.8,189.02,289.6065,188.517,286.3754,194.9637,293.5689,195.4667,296.8,189.02" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="139" y="291.0669">+a</text>
<path d="M296.95,205.9 C235.22,250.67 162.45,303.44 125.38,330.32 " fill="none" id="C_0000630692407373144211-&gt;C_0001909425857334087541" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M296.95,205.9 C235.22,250.67 162.45,303.44 125.38,330.32 " fill="none" id="C_0005045539258985153690-&gt;C_0015275406858672700331" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="121.04,333.47,130.6752,331.4296,125.0892,330.5368,125.9821,324.9509,121.04,333.47" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="192" y="291.0669">+b</text>
<path d="M296.81,231.45 C260.45,266.53 223.08,302.58 199.72,325.12 " fill="none" id="C_0000630692407373144211-&gt;C_0000968176384460064907" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M296.81,231.45 C260.45,266.53 223.08,302.58 199.72,325.12 " fill="none" id="C_0005045539258985153690-&gt;C_0007745411075680519262" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="196.09,328.62,205.3384,325.2338,199.6823,325.1422,199.7739,319.4861,196.09,328.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="18" x="245" y="291.0669">+c</text>
<path d="M320.87,248.11 C302.09,275.35 283.87,301.78 270.89,320.61 " fill="none" id="C_0000630692407373144211-&gt;C_0001735599590836186693" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M320.87,248.11 C302.09,275.35 283.87,301.78 270.89,320.61 " fill="none" id="C_0005045539258985153690-&gt;C_0013884796726689493544" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="268.03,324.75,276.4249,319.5997,270.8626,320.6298,269.8326,315.0675,268.03,324.75" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="298" y="291.0669">+d</text>
<path d="M362.21,248.11 C353.04,274.89 344.13,300.89 337.71,319.65 " fill="none" id="C_0000630692407373144211-&gt;C_0000887960136921844658" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M362.21,248.11 C353.04,274.89 344.13,300.89 337.71,319.65 " fill="none" id="C_0005045539258985153690-&gt;C_0007103681095374757269" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="335.96,324.75,342.6532,317.525,337.5754,320.0181,335.0822,314.9403,335.96,324.75" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="352" y="291.0669">+e</text>
<path d="M403,261.41 C403,285.83 403,308.67 403,324.75 " fill="none" id="C_0000630692407373144211&lt;-C_0000772719357856231772" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M403,261.41 C403,285.83 403,308.67 403,324.75 " fill="none" id="C_0005045539258985153690&lt;-C_0006181754862849854182" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="403,248.11,399,254.11,403,260.11,407,254.11,403,248.11" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="15" x="404" y="291.0669">+f</text>
<path d="M443.79,248.11 C452.96,274.89 461.87,300.89 468.29,319.65 " fill="none" id="C_0000630692407373144211-&gt;C_0000979147885884736437" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M443.79,248.11 C452.96,274.89 461.87,300.89 468.29,319.65 " fill="none" id="C_0005045539258985153690-&gt;C_0007833183087077891503" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="470.04,324.75,470.9178,314.9403,468.4246,320.0181,463.3468,317.525,470.04,324.75" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="459" y="291.0669">+g</text>
<path d="M485.13,248.11 C503.91,275.35 522.13,301.78 535.11,320.61 " fill="none" id="C_0000630692407373144211-&gt;C_0001440673301054236675" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M485.13,248.11 C503.91,275.35 522.13,301.78 535.11,320.61 " fill="none" id="C_0005045539258985153690-&gt;C_0011525386408433893405" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="537.97,324.75,536.1674,315.0675,535.1374,320.6298,529.5751,319.5997,537.97,324.75" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="515" y="291.0669">+h</text>
<path d="M509.1,232.73 C545.65,268.47 583.05,305.04 605.66,327.13 " fill="none" id="C_0000630692407373144211-&gt;C_0000109681731550086430" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M509.1,232.73 C545.65,268.47 583.05,305.04 605.66,327.13 " fill="none" id="C_0005045539258985153690-&gt;C_0000877453852400691446" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="609.43,330.82,605.7835,321.671,605.852,327.3275,600.1955,327.3959,609.43,330.82" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="14" x="568" y="291.0669">+i</text>
<path d="M509.14,208.06 C569.83,253.27 640.62,306 675.43,331.93 " fill="none" id="C_0000630692407373144211-&gt;C_0000338330011969650325" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M509.14,208.06 C569.83,253.27 640.62,306 675.43,331.93 " fill="none" id="C_0005045539258985153690-&gt;C_0002706640095757202600" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="679.49,334.96,674.69,326.36,675.49,331.96,669.89,332.76,679.49,334.96" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="14" x="620" y="291.0669">+j</text>
<path d="M509.24,191.61 C573.84,229.84 657.88,279.89 732,325 C736.26,327.6 740.79,330.38 745.16,333.09 " fill="none" id="C_0000630692407373144211-&gt;C_0002179119389830432509" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M509.24,191.61 C573.84,229.84 657.88,279.89 732,325 C736.26,327.6 740.79,330.38 745.16,333.09 " fill="none" id="C_0005045539258985153690-&gt;C_0017432955118643460073" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="749.46,335.76,743.9036,327.6282,745.2056,333.1331,739.7007,334.4352,749.46,335.76" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="18" x="680" y="291.0669">+k</text>
</g>

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

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

After

Width:  |  Height:  |  Size: 34 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="479px" preserveAspectRatio="none" style="width:1390px;height:479px;" version="1.1" viewBox="0 0 1390 479" width="1390px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1qbi4k46x07a1" width="300%" x="-1" y="-1">
<filter height="300%" id="f1q6djf6q30tql" 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,312 +9,316 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0007912762435557379205" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L10" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L10" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L9" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L9" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0005186282081960042491" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L13" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L13" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L11" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L11" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0002586434664058382197" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L16" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L16" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L13" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L13" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0008055299192349067940" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L19" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L19" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L15" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L15" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0008740403152164631827" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L22" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L22" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L17" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L17" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0007723190094486257891" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L25" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L25" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L19" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L19" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0014117856007096243716" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L28" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L28" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L21" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L21" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0013354284798700417170" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L31" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L31" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L23" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L23" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0017878004788792003021" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L34" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L34" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L25" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L25" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0010687469195003722956" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L37" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L37" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L27" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L27" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0012825522918912640984" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L40" target="_top" title="L" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L40" xlink:show="new" xlink:title="L" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L29" target="_top" title="L" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L29" xlink:show="new" xlink:title="L" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0002443897907266560370" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L43" target="_top" title="M" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L43" xlink:show="new" xlink:title="M" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L31" target="_top" title="M" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L31" xlink:show="new" xlink:title="M" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0013317956099389786204" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L46" target="_top" title="N" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L46" xlink:show="new" xlink:title="N" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L33" target="_top" title="N" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L33" xlink:show="new" xlink:title="N" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0007601680158337220805" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L49" target="_top" title="NN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L49" xlink:show="new" xlink:title="NN" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L35" target="_top" title="NN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L35" xlink:show="new" xlink:title="NN" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0013298797887197809793" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L52" target="_top" title="NNN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L52" xlink:show="new" xlink:title="NNN" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L37" target="_top" title="NNN" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L37" xlink:show="new" xlink:title="NNN" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0015705160603852798870" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L55" target="_top" title="custom_container" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L55" xlink:show="new" xlink:title="custom_container" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L39" target="_top" title="custom_container" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L39" xlink:show="new" xlink:title="custom_container" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="60.8047" id="C_0007331041535639501055" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="1370.5" y="405"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="1371.5" y="417.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1222.5" x2="1375.5" y1="440" y2="440"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="1222.5" x2="1375.5" y1="448" y2="448"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L57" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L57" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L41" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="454"/>
<ellipse cx="1232.5" cy="459" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L57" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L57" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L41" target="_top" title="data" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="462.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(#f1qbi4k46x07a1)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="10" x="1304" y="296"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="8" x="1305" y="308.1387">E</text>
<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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L60" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L60" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1qbi4k46x07a1)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L39" target="_top" title="custom_container" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L39" xlink:show="new" xlink:title="custom_container" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="48" id="C_0000401224904659478871" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="10" x="1304" y="296"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="8" x="1305" y="308.1387">E</text>
<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>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L44" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L44" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1q6djf6q30tql)" height="214.4609" id="C_0002424204488135060211" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="472" x2="700" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L62" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L62" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L46" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="54"/>
<ellipse cx="482" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L62" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L62" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L46" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="62.2104">a : std::vector&lt;A&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L63" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L63" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L47" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="66.8047"/>
<ellipse cx="482" cy="71.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L63" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L63" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L47" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="75.0151">b : std::vector&lt;B *&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L65" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L65" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L49" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="79.6094"/>
<ellipse cx="482" cy="84.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L65" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L65" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L49" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="87.8198">c : std::map&lt;int,C&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L66" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L66" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L50" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="92.4141"/>
<ellipse cx="482" cy="97.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L66" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L66" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L50" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="100.6245">d : std::map&lt;int,D *&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L68" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L68" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L52" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="105.2188"/>
<ellipse cx="482" cy="110.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L68" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L68" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L52" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="113.4292">e : custom_container&lt;E&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L70" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L70" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L54" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="118.0234"/>
<ellipse cx="482" cy="123.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L70" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L70" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L54" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="126.2339">f : std::vector&lt;std::vector&lt;F&gt;&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L71" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L71" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L55" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="130.8281"/>
<ellipse cx="482" cy="135.8281" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L71" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L71" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L55" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="139.0386">g : std::map&lt;int,std::vector&lt;G *&gt;&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L73" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L73" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L57" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="143.6328"/>
<ellipse cx="482" cy="148.6328" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L73" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L73" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L57" target="_top" title="h" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="151.8433">h : std::array&lt;H,10&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L74" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L74" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L58" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="156.4375"/>
<ellipse cx="482" cy="161.4375" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L74" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L74" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L58" target="_top" title="i" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="164.6479">i : std::array&lt;I *,5&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L76" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L76" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L60" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="169.2422"/>
<ellipse cx="482" cy="174.2422" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L76" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L76" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L60" target="_top" title="j" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="177.4526">j : J[10]</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L77" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L77" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L61" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="182.0469"/>
<ellipse cx="482" cy="187.0469" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L77" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L77" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L61" target="_top" title="k" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="190.2573">k : K *[20]</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L79" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L79" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L63" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="194.8516"/>
<ellipse cx="482" cy="199.8516" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L79" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L79" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L63" target="_top" title="lm" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="203.062">lm : std::vector&lt;std::pair&lt;L,M&gt;&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L81" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L81" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L65" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="207.6563"/>
<ellipse cx="482" cy="212.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L81" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00006/t00006.cc#L81" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00006/t00006.cc#L65" target="_top" title="ns" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="215.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"/>
<path d="M1219.28,347.24 C1208.62,365.3 1193.8,390.41 1182.5,409.56 " fill="none" id="C_0000050153113082434858-&gt;C_0001092550394020578978" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M1219.28,347.24 C1208.62,365.3 1193.8,390.41 1182.5,409.56 " fill="none" id="C_0000401224904659478871-&gt;C_0008740403152164631827" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="1179.7,414.29,1187.7242,408.5793,1182.2451,409.9862,1180.8381,404.5071,1179.7,414.29" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1246.52,347.24 C1253.75,359.69 1262.94,375.49 1271.6,390.38 " fill="none" id="C_0000050153113082434858-&gt;C_0000916380191954937631" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M1246.52,347.24 C1253.75,359.69 1262.94,375.49 1271.6,390.38 " fill="none" id="C_0000401224904659478871-&gt;C_0007331041535639501055" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="1277.73,387,1281.73,407.81,1265.63,394.03,1277.73,387" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M458.29,155.44 C376.7,181.33 268.96,216.8 175,252 C124.45,270.94 110.96,274.23 63,299 C57.36,301.92 51.43,305.39 46.02,308.75 " fill="none" id="C_0000303025561016882526&lt;-C_0000989095304444672400" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M458.29,155.44 C376.7,181.33 268.96,216.8 175,252 C124.45,270.94 110.96,274.23 63,299 C57.36,301.92 51.43,305.39 46.02,308.75 " fill="none" id="C_0002424204488135060211&lt;-C_0007912762435557379205" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="470.89,151.45,463.9642,149.4417,459.4466,155.0623,466.3724,157.0706,470.89,151.45" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="176" y="265.0669">+a</text>
<path d="M470.77,160.82 C404.5,186.88 319.81,220.66 245,252 C197.09,272.07 183.95,274.78 138,299 C133.87,301.18 129.59,303.64 125.46,306.12 " fill="none" id="C_0000303025561016882526-&gt;C_0000648285260245005311" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M470.77,160.82 C404.5,186.88 319.81,220.66 245,252 C197.09,272.07 183.95,274.78 138,299 C133.87,301.18 129.59,303.64 125.46,306.12 " fill="none" id="C_0002424204488135060211-&gt;C_0005186282081960042491" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="121.05,308.82,130.8145,307.5335,125.3146,306.2099,126.6383,300.71,121.05,308.82" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="246" y="265.0669">+b</text>
<path d="M458.79,175.2 C386.27,209.78 294.14,255.14 214,299 C208.18,302.18 201.98,305.82 196.32,309.25 " fill="none" id="C_0000303025561016882526&lt;-C_0000323304333007297774" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M458.79,175.2 C386.27,209.78 294.14,255.14 214,299 C208.18,302.18 201.98,305.82 196.32,309.25 " fill="none" id="C_0002424204488135060211&lt;-C_0002586434664058382197" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="470.71,169.52,463.5735,168.4851,459.8735,174.6746,467.0099,175.7095,470.71,169.52" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="18" x="296" y="265.0669">+c</text>
<path d="M470.59,187.18 C400.73,230.27 317.51,281.59 276.85,306.67 " fill="none" id="C_0000303025561016882526-&gt;C_0001006912399043633492" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M470.59,187.18 C400.73,230.27 317.51,281.59 276.85,306.67 " fill="none" id="C_0002424204488135060211-&gt;C_0008055299192349067940" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="272.58,309.31,282.3425,308.0089,276.8407,306.6935,278.1561,301.1917,272.58,309.31" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="362" y="265.0669">+d</text>
<path d="M713.81,155.54 C800.34,182.44 917.17,218.99 1020,252 C1068,267.41 1121.94,285.14 1163.53,298.9 " fill="none" id="C_0000303025561016882526&lt;-C_0000050153113082434858" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M713.81,155.54 C800.34,182.44 917.17,218.99 1020,252 C1068,267.41 1121.94,285.14 1163.53,298.9 " fill="none" id="C_0002424204488135060211&lt;-C_0000401224904659478871" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="701.27,151.65,705.813,157.2501,712.7296,155.2105,708.1866,149.6104,701.27,151.65" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="1068" y="265.0669">+e</text>
<path d="M460.61,215.73 C416.52,250.8 371.79,286.38 346.9,306.17 " fill="none" id="C_0000303025561016882526&lt;-C_0000965398761810782236" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M460.61,215.73 C416.52,250.8 371.79,286.38 346.9,306.17 " fill="none" id="C_0002424204488135060211&lt;-C_0007723190094486257891" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="470.89,207.55,463.7046,208.1587,461.5029,215.0254,468.6882,214.4168,470.89,207.55" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="15" x="412" y="265.0669">+f</text>
<path d="M491.31,222.02 C467.24,248.96 443.42,275.63 426.44,294.64 " fill="none" id="C_0000303025561016882526-&gt;C_0001764732000887030464" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M491.31,222.02 C467.24,248.96 443.42,275.63 426.44,294.64 " fill="none" id="C_0002424204488135060211-&gt;C_0014117856007096243716" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="422.7,298.82,431.6776,294.7699,426.0298,295.0901,425.7097,289.4423,422.7,298.82" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="463" y="265.0669">+g</text>
<path d="M524.21,233.86 C511.21,258.66 498.82,282.28 490.15,298.82 " fill="none" id="C_0000303025561016882526&lt;-C_0001669285599837552146" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M524.21,233.86 C511.21,258.66 498.82,282.28 490.15,298.82 " fill="none" id="C_0002424204488135060211&lt;-C_0013354284798700417170" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="530.42,222.02,524.0933,225.4801,524.8539,232.651,531.1806,229.1909,530.42,222.02" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="514" y="265.0669">+h</text>
<path d="M567.07,222.13 C565.33,232.23 563.62,242.3 562,252 C559.7,265.82 557.26,281.2 555.28,294.01 " fill="none" id="C_0000303025561016882526-&gt;C_0002234750598599000377" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M567.07,222.13 C565.33,232.23 563.62,242.3 562,252 C559.7,265.82 557.26,281.2 555.28,294.01 " fill="none" id="C_0002424204488135060211-&gt;C_0017878004788792003021" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="554.51,298.97,559.8266,290.6794,555.2671,294.0276,551.9188,289.4681,554.51,298.97" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="14" x="563" y="265.0669">+i</text>
<path d="M606.2,234.87 C610.35,259.3 614.29,282.51 617.06,298.82 " fill="none" id="C_0000303025561016882526&lt;-C_0001335933649375465369" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M606.2,234.87 C610.35,259.3 614.29,282.51 617.06,298.82 " fill="none" id="C_0002424204488135060211&lt;-C_0010687469195003722956" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="604.01,222.02,601.0746,228.6066,606.0255,233.8495,608.9609,227.2629,604.01,222.02" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="14" x="613" y="265.0669">+j</text>
<path d="M641.07,222.02 C654.95,248.74 668.68,275.18 678.54,294.16 " fill="none" id="C_0000303025561016882526-&gt;C_0001603190364864080123" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="598.0004" y="287.7859">10</text>
<path d="M641.07,222.02 C654.95,248.74 668.68,275.18 678.54,294.16 " fill="none" id="C_0002424204488135060211-&gt;C_0012825522918912640984" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="680.96,298.82,680.3746,288.9886,678.6613,294.3797,673.2702,292.6664,680.96,298.82" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="18" x="666" y="265.0669">+k</text>
<path d="M688.02,232.11 C711.05,258.33 733.08,283.39 747.99,300.36 " fill="none" id="C_0000303025561016882526&lt;-C_0000305487238408320046" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="659.8248" y="287.7859">20</text>
<path d="M688.02,232.11 C711.05,258.33 733.08,283.39 747.99,300.36 " fill="none" id="C_0002424204488135060211&lt;-C_0002443897907266560370" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="679.15,222.02,680.1055,229.1675,687.0707,231.0346,686.1152,223.8871,679.15,222.02" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="725" cy="261.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="16" x="732" y="265.0669">lm</text>
<path d="M711.74,215.61 C727.02,227.83 742.39,240.17 757,252 C778.84,269.68 803.63,290.14 820.77,304.35 " fill="none" id="C_0000303025561016882526&lt;-C_0001664744512423723275" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M711.74,215.61 C727.02,227.83 742.39,240.17 757,252 C778.84,269.68 803.63,290.14 820.77,304.35 " fill="none" id="C_0002424204488135060211&lt;-C_0013317956099389786204" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="701.19,207.18,703.3811,214.0501,710.5656,214.6699,708.3744,207.7998,701.19,207.18" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="782" cy="261.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="16" x="789" y="265.0669">lm</text>
<path d="M712.39,189.86 C745.64,209.71 781.34,231.39 814,252 C843.65,270.71 877.25,293.37 898.28,307.74 " fill="none" id="C_0000303025561016882526&lt;-C_0000950210019792152600" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M712.39,189.86 C745.64,209.71 781.34,231.39 814,252 C843.65,270.71 877.25,293.37 898.28,307.74 " fill="none" id="C_0002424204488135060211&lt;-C_0007601680158337220805" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="701.21,183.2,704.3166,189.7076,711.5185,189.3429,708.4119,182.8353,701.21,183.2" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="847" cy="261.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="15" x="854" y="265.0669">ns</text>
<path d="M713.07,172.33 C764.72,195.97 824.69,224.35 878,252 C912.03,269.65 950.21,291.98 974.65,306.61 " fill="none" id="C_0000303025561016882526&lt;-C_0001662349735899726224" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M713.07,172.33 C764.72,195.97 824.69,224.35 878,252 C912.03,269.65 950.21,291.98 974.65,306.61 " fill="none" id="C_0002424204488135060211&lt;-C_0013298797887197809793" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="701.15,166.9,704.947,173.0305,712.0663,171.8835,708.2693,165.753,701.15,166.9" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="915" cy="261.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="15" x="922" y="265.0669">ns</text>
<path d="M713.66,161.01 C783,186.26 869.88,219.2 946,252 C986.21,269.32 1031.45,291.83 1060.31,306.58 " fill="none" id="C_0000303025561016882526&lt;-C_0001963145075481599858" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M713.66,161.01 C783,186.26 869.88,219.2 946,252 C986.21,269.32 1031.45,291.83 1060.31,306.58 " fill="none" id="C_0002424204488135060211&lt;-C_0015705160603852798870" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="701.37,156.54,705.6494,162.344,712.6529,160.6261,708.3735,154.8221,701.37,156.54" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="989" cy="261.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="15" x="996" y="265.0669">ns</text>

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 57 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 49 KiB

View File

@@ -1,35 +1,29 @@
# t00007 - Smart pointers
## Config
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
t00007_class:
type: class
glob:
- ../../tests/t00007/t00007.cc
using_namespace:
- clanguml::t00007
- t00007.cc
using_namespace: clanguml::t00007
include:
namespaces:
- clanguml::t00007
```
## Source code
File t00007.cc
File `tests/t00007/t00007.cc`
```cpp
#include <memory>
namespace clanguml {
namespace t00007 {
class A {
};
class A { };
class B {
};
class B { };
class C {
};
class C { };
class R {
public:
@@ -41,5 +35,166 @@ public:
} // namespace clanguml
```
## Generated UML diagrams
## Generated PlantUML diagrams
![t00007_class](./t00007_class.svg "Smart pointers")
## Generated Mermaid diagrams
![t00007_class](./t00007_class_mermaid.svg "Smart pointers")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "A",
"id": "791012980272136155",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00007",
"source_location": {
"column": 7,
"file": "t00007.cc",
"line": 5,
"translation_unit": "t00007.cc"
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "B",
"id": "5571050502189662274",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "B",
"namespace": "clanguml::t00007",
"source_location": {
"column": 7,
"file": "t00007.cc",
"line": 7,
"translation_unit": "t00007.cc"
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "C",
"id": "7776249429434912544",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [],
"name": "C",
"namespace": "clanguml::t00007",
"source_location": {
"column": 7,
"file": "t00007.cc",
"line": 9,
"translation_unit": "t00007.cc"
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "R",
"id": "535246997770401258",
"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": {
"column": 24,
"file": "t00007.cc",
"line": 13,
"translation_unit": "t00007.cc"
},
"type": "std::unique_ptr<A>"
},
{
"access": "public",
"is_static": false,
"name": "b",
"source_location": {
"column": 24,
"file": "t00007.cc",
"line": 14,
"translation_unit": "t00007.cc"
},
"type": "std::shared_ptr<B>"
},
{
"access": "public",
"is_static": false,
"name": "c",
"source_location": {
"column": 22,
"file": "t00007.cc",
"line": 15,
"translation_unit": "t00007.cc"
},
"type": "std::weak_ptr<C>"
}
],
"methods": [],
"name": "R",
"namespace": "clanguml::t00007",
"source_location": {
"column": 7,
"file": "t00007.cc",
"line": 11,
"translation_unit": "t00007.cc"
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00007_class",
"package_type": "namespace",
"relationships": [
{
"access": "public",
"destination": "791012980272136155",
"label": "a",
"source": "535246997770401258",
"type": "aggregation"
},
{
"access": "public",
"destination": "5571050502189662274",
"label": "b",
"source": "535246997770401258",
"type": "association"
},
{
"access": "public",
"destination": "7776249429434912544",
"label": "c",
"source": "535246997770401258",
"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="fj9s08fdqq409" width="300%" x="-1" y="-1">
<filter height="300%" id="frorkdov2z1qf" 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,66 +9,66 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fj9s08fdqq409)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#frorkdov2z1qf)" height="48" id="C_0000791012980272136155" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L8" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L8" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fj9s08fdqq409)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L7" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L7" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#frorkdov2z1qf)" height="48" id="C_0005571050502189662274" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L11" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L11" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fj9s08fdqq409)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L9" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L9" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#frorkdov2z1qf)" height="48" id="C_0007776249429434912544" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L14" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L14" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fj9s08fdqq409)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L11" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L11" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#frorkdov2z1qf)" height="86.4141" id="C_0000535246997770401258" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="22.5" x2="179.5" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L16" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L16" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L13" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="54"/>
<ellipse cx="32.5" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L16" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L16" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L13" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="62.2104">a : std::unique_ptr&lt;A&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L17" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L17" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L14" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="66.8047"/>
<ellipse cx="32.5" cy="71.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L17" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L17" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L14" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="75.0151">b : std::shared_ptr&lt;B&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L18" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L18" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L15" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="79.6094"/>
<ellipse cx="32.5" cy="84.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L18" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00007/t00007.cc#L18" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00007/t00007.cc#L15" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="87.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"/>
<path d="M72.48,106 C60.66,128.37 47.58,153.14 38.31,170.69 " fill="none" id="C_0000066905874721300157&lt;-C_0000098876622534017019" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M72.48,106 C60.66,128.37 47.58,153.14 38.31,170.69 " fill="none" id="C_0000535246997770401258&lt;-C_0000791012980272136155" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="78.7,94.22,72.3597,97.6552,73.092,104.829,79.4323,101.3938,78.7,94.22" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="62" y="137.0669">+a</text>
<path d="M101,94.22 C101,117.28 101,145.22 101,165.66 " fill="none" id="C_0000066905874721300157-&gt;C_0000696381312773707784" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M101,94.22 C101,117.28 101,145.22 101,165.66 " fill="none" id="C_0000535246997770401258-&gt;C_0005571050502189662274" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="101,170.69,105,161.69,101,165.69,97,161.69,101,170.69" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="19" x="102" y="137.0669">+b</text>
<path d="M123.3,94.22 C135.58,117.48 150.49,145.69 161.31,166.18 " fill="none" id="C_0000066905874721300157-&gt;C_0000972031178679364068" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M123.3,94.22 C135.58,117.48 150.49,145.69 161.31,166.18 " fill="none" id="C_0000535246997770401258-&gt;C_0007776249429434912544" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="163.69,170.69,163.0039,160.8651,161.346,166.2735,155.9375,164.6155,163.69,170.69" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="18" x="148" y="137.0669">+c</text>
</g>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

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

After

Width:  |  Height:  |  Size: 14 KiB

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:678px;height:390px;" version="1.1" viewBox="0 0 678 390" width="678px" zoomAndPan="magnify">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="403px" preserveAspectRatio="none" style="width:1039px;height:403px;" version="1.1" viewBox="0 0 1039 403" width="1039px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1il5vd6hwo0tz" width="300%" x="-1" y="-1">
<filter height="300%" id="f1gs8r7y9oy9ck" 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,184 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1il5vd6hwo0tz)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L9" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L9" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gs8r7y9oy9ck)" height="124.8281" id="C_0018348137047180305042" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="214" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="54"/>
<ellipse cx="17" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="62.2104">comparator : CMP</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="66.8047"/>
<ellipse cx="17" cy="71.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="75.0151">ints : std::array&lt;int,N&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="79.6094"/>
<ellipse cx="17" cy="84.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L12" target="_top" title="pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="87.8198">pointer : T *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="92.4141"/>
<ellipse cx="17" cy="97.4141" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L13" target="_top" title="reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="100.6245">reference : T &amp;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="105.2188"/>
<ellipse cx="17" cy="110.2188" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L15" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="113.4292">value : T</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="118.0234"/>
<ellipse cx="17" cy="123.0234" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L17" target="_top" title="comparator" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L14" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="126.2339">values : std::vector&lt;P&gt;</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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L20" target="_top" title="Vector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L20" xlink:show="new" xlink:title="Vector" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1il5vd6hwo0tz)" 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"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L20" target="_top" title="Vector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L20" xlink:show="new" xlink:title="Vector" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gs8r7y9oy9ck)" height="60.8047" id="C_0013419256118741442489" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="251" x2="410" y1="80" y2="80"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="86"/>
<ellipse cx="261" cy="91" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L21" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="94.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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1il5vd6hwo0tz)" height="60.8047" id="C_0001968575752686868237" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="444" y="319"/>
<ellipse cx="502.75" cy="335" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M505.7188,340.6406 Q505.1406,340.9375 504.5,341.0781 Q503.8594,341.2344 503.1563,341.2344 Q500.6563,341.2344 499.3281,339.5938 Q498.0156,337.9375 498.0156,334.8125 Q498.0156,331.6875 499.3281,330.0313 Q500.6563,328.375 503.1563,328.375 Q503.8594,328.375 504.5,328.5313 Q505.1563,328.6875 505.7188,328.9844 L505.7188,331.7031 Q505.0938,331.125 504.5,330.8594 Q503.9063,330.5781 503.2813,330.5781 Q501.9375,330.5781 501.25,331.6563 Q500.5625,332.7188 500.5625,334.8125 Q500.5625,336.9063 501.25,337.9844 Q501.9375,339.0469 503.2813,339.0469 Q503.9063,339.0469 504.5,338.7813 Q505.0938,338.5 505.7188,337.9219 L505.7188,340.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="523.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="583" y="316"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="39" x="584" y="328.1387">T,C&lt;&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="445" x2="620" y1="351" y2="351"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gs8r7y9oy9ck)" height="60.8047" id="C_0015748606021494945899" style="stroke: #A80036; stroke-width: 1.5;" width="177" x="490" y="332"/>
<ellipse cx="548.75" cy="348" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M551.7188,353.6406 Q551.1406,353.9375 550.5,354.0781 Q549.8594,354.2344 549.1563,354.2344 Q546.6563,354.2344 545.3281,352.5938 Q544.0156,350.9375 544.0156,347.8125 Q544.0156,344.6875 545.3281,343.0313 Q546.6563,341.375 549.1563,341.375 Q549.8594,341.375 550.5,341.5313 Q551.1563,341.6875 551.7188,341.9844 L551.7188,344.7031 Q551.0938,344.125 550.5,343.8594 Q549.9063,343.5781 549.2813,343.5781 Q547.9375,343.5781 547.25,344.6563 Q546.5625,345.7188 546.5625,347.8125 Q546.5625,349.9063 547.25,350.9844 Q547.9375,352.0469 549.2813,352.0469 Q549.9063,352.0469 550.5,351.7813 Q551.0938,351.5 551.7188,350.9219 L551.7188,353.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="569.25" y="352.1543">B</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="41" x="629" y="329"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="39" x="630" y="341.1387">T,C&lt;&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="491" x2="666" y1="364" y2="364"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="491" x2="666" y1="372" y2="372"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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="450" y="357"/>
<ellipse cx="455" cy="362" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="496" y="378"/>
<ellipse cx="501" cy="383" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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="464" y="365.2104">template_template : C&lt;T&gt;</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L25" target="_top" title="template_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="510" y="386.2104">template_template : C&lt;T&gt;</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="445" x2="620" y1="371.8047" y2="371.8047"/>
<rect fill="#FEFECE" filter="url(#f1il5vd6hwo0tz)" height="48" id="C_0001449136415707203971" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="480" y="210"/>
<ellipse cx="495" cy="226" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M497.9688,231.6406 Q497.3906,231.9375 496.75,232.0781 Q496.1094,232.2344 495.4063,232.2344 Q492.9063,232.2344 491.5781,230.5938 Q490.2656,228.9375 490.2656,225.8125 Q490.2656,222.6875 491.5781,221.0313 Q492.9063,219.375 495.4063,219.375 Q496.1094,219.375 496.75,219.5313 Q497.4063,219.6875 497.9688,219.9844 L497.9688,222.7031 Q497.3438,222.125 496.75,221.8594 Q496.1563,221.5781 495.5313,221.5781 Q494.1875,221.5781 493.5,222.6563 Q492.8125,223.7188 492.8125,225.8125 Q492.8125,227.9063 493.5,228.9844 Q494.1875,230.0469 495.5313,230.0469 Q496.1563,230.0469 496.75,229.7813 Q497.3438,229.5 497.9688,228.9219 L497.9688,231.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="509" 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="525" y="207"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="61" x="526" y="219.1387">int,Vector</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="481" x2="584" y1="242" y2="242"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="481" x2="584" y1="250" y2="250"/>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1il5vd6hwo0tz)" height="86.4141" id="C_0001562396858816419857" style="stroke: #A80036; stroke-width: 1.5;" width="269" x="398" y="27.5"/>
<ellipse cx="523.75" cy="43.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M526.7188,49.1406 Q526.1406,49.4375 525.5,49.5781 Q524.8594,49.7344 524.1563,49.7344 Q521.6563,49.7344 520.3281,48.0938 Q519.0156,46.4375 519.0156,43.3125 Q519.0156,40.1875 520.3281,38.5313 Q521.6563,36.875 524.1563,36.875 Q524.8594,36.875 525.5,37.0313 Q526.1563,37.1875 526.7188,37.4844 L526.7188,40.2031 Q526.0938,39.625 525.5,39.3594 Q524.9063,39.0781 524.2813,39.0781 Q522.9375,39.0781 522.25,40.1563 Q521.5625,41.2188 521.5625,43.3125 Q521.5625,45.4063 522.25,46.4844 Q522.9375,47.5469 524.2813,47.5469 Q524.9063,47.5469 525.5,47.2813 Q526.0938,47 526.7188,46.4219 L526.7188,49.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="544.25" y="47.6543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="666" y1="59.5" y2="59.5"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gs8r7y9oy9ck)" height="48" id="C_0011593091325657631773" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="526" y="216.5"/>
<ellipse cx="541" cy="232.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M543.9688,238.1406 Q543.3906,238.4375 542.75,238.5781 Q542.1094,238.7344 541.4063,238.7344 Q538.9063,238.7344 537.5781,237.0938 Q536.2656,235.4375 536.2656,232.3125 Q536.2656,229.1875 537.5781,227.5313 Q538.9063,225.875 541.4063,225.875 Q542.1094,225.875 542.75,226.0313 Q543.4063,226.1875 543.9688,226.4844 L543.9688,229.2031 Q543.3438,228.625 542.75,228.3594 Q542.1563,228.0781 541.5313,228.0781 Q540.1875,228.0781 539.5,229.1563 Q538.8125,230.2188 538.8125,232.3125 Q538.8125,234.4063 539.5,235.4844 Q540.1875,236.5469 541.5313,236.5469 Q542.1563,236.5469 542.75,236.2813 Q543.3438,236 543.9688,235.4219 L543.9688,238.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="555" y="236.6543">B</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="63" x="571" y="213.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="61" x="572" y="225.6387">int,Vector</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="527" x2="630" y1="248.5" y2="248.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="527" x2="630" y1="256.5" y2="256.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gs8r7y9oy9ck)" height="94.4141" id="C_0012499174870531358858" style="stroke: #A80036; stroke-width: 1.5;" width="265" x="446" y="23.5"/>
<ellipse cx="569.75" cy="39.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M572.7188,45.1406 Q572.1406,45.4375 571.5,45.5781 Q570.8594,45.7344 570.1563,45.7344 Q567.6563,45.7344 566.3281,44.0938 Q565.0156,42.4375 565.0156,39.3125 Q565.0156,36.1875 566.3281,34.5313 Q567.6563,32.875 570.1563,32.875 Q570.8594,32.875 571.5,33.0313 Q572.1563,33.1875 572.7188,33.4844 L572.7188,36.2031 Q572.0938,35.625 571.5,35.3594 Q570.9063,35.0781 570.2813,35.0781 Q568.9375,35.0781 568.25,36.1563 Q567.5625,37.2188 567.5625,39.3125 Q567.5625,41.4063 568.25,42.4844 Q568.9375,43.5469 570.2813,43.5469 Q570.9063,43.5469 571.5,43.2813 Q572.0938,43 572.7188,42.4219 L572.7188,45.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="9" x="590.25" y="43.6543">D</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="710" y1="55.5" y2="55.5"/>
<ellipse cx="457" cy="66.5" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="239" x="466" y="69.7104">D&lt;Items...&gt;(std::tuple&lt;Items...&gt; *) : void</text>
<line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="447" x2="710" y1="76.3047" y2="76.3047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L33" target="_top" title="add" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L33" xlink:show="new" xlink:title="add" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="452" y="82.3047"/>
<ellipse cx="457" cy="87.3047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="399" x2="666" 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="243" x="418" y="107.3198">D&lt;Items...&gt;(std::tuple&lt;Items...&gt; * ) : void</text>
<path d="M532.5,258.24 C532.5,269.87 532.5,284.42 532.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="539.5,298.81,532.5,318.81,525.5,298.81,539.5,298.81" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M532.5,126.57 C532.5,154.93 532.5,188.01 532.5,209.67 " fill="none" id="C_0001562396858816419857&lt;-C_0001449136415707203971" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="532.5,113.51,528.5,119.51,532.5,125.51,536.5,119.51,532.5,113.51" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="538.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="545.5" y="176.0669">ints</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L33" target="_top" title="add" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L33" xlink:show="new" xlink:title="add" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="85" x="466" y="90.5151">add(int i) : void</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="447" x2="710" y1="97.1094" y2="97.1094"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="103.1094"/>
<ellipse cx="457" cy="108.1094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L29" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="111.3198">ints : B&lt;int,Vector&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L36" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L36" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gs8r7y9oy9ck)" height="48" id="C_0014301267656419448926" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="823.5" y="338.5"/>
<ellipse cx="838.5" cy="354.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M841.4688,360.1406 Q840.8906,360.4375 840.25,360.5781 Q839.6094,360.7344 838.9063,360.7344 Q836.4063,360.7344 835.0781,359.0938 Q833.7656,357.4375 833.7656,354.3125 Q833.7656,351.1875 835.0781,349.5313 Q836.4063,347.875 838.9063,347.875 Q839.6094,347.875 840.25,348.0313 Q840.9063,348.1875 841.4688,348.4844 L841.4688,351.2031 Q840.8438,350.625 840.25,350.3594 Q839.6563,350.0781 839.0313,350.0781 Q837.6875,350.0781 837,351.1563 Q836.3125,352.2188 836.3125,354.3125 Q836.3125,356.4063 837,357.4844 Q837.6875,358.5469 839.0313,358.5469 Q839.6563,358.5469 840.25,358.2813 Q840.8438,358 841.4688,357.4219 L841.4688,360.1406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="852.5" y="358.6543">E</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="824.5" x2="862.5" y1="370.5" y2="370.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="824.5" x2="862.5" y1="378.5" y2="378.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L37" target="_top" title="E##nested_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L37" xlink:show="new" xlink:title="E##nested_template" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gs8r7y9oy9ck)" height="60.8047" id="C_0012395353627920519248" style="stroke: #A80036; stroke-width: 1.5;" width="173" x="852" y="210"/>
<ellipse cx="867" cy="226" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M869.9688,231.6406 Q869.3906,231.9375 868.75,232.0781 Q868.1094,232.2344 867.4063,232.2344 Q864.9063,232.2344 863.5781,230.5938 Q862.2656,228.9375 862.2656,225.8125 Q862.2656,222.6875 863.5781,221.0313 Q864.9063,219.375 867.4063,219.375 Q868.1094,219.375 868.75,219.5313 Q869.4063,219.6875 869.9688,219.9844 L869.9688,222.7031 Q869.3438,222.125 868.75,221.8594 Q868.1563,221.5781 867.5313,221.5781 Q866.1875,221.5781 865.5,222.6563 Q864.8125,223.7188 864.8125,225.8125 Q864.8125,227.9063 865.5,228.9844 Q866.1875,230.0469 867.5313,230.0469 Q868.1563,230.0469 868.75,229.7813 Q869.3438,229.5 869.9688,228.9219 L869.9688,231.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="881" 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="1011" y="207"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="15" x="1012" y="219.1387">ET</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="853" x2="1024" y1="242" y2="242"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L40" target="_top" title="get" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L40" xlink:show="new" xlink:title="get" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="858" y="248"/>
<ellipse cx="863" cy="253" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L40" target="_top" title="get" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L40" xlink:show="new" xlink:title="get" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="98" x="872" y="256.2104">get(ET * d) : DT *</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="853" x2="1024" y1="262.8047" y2="262.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L44" target="_top" title="E##nested_template" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L44" xlink:show="new" xlink:title="E##nested_template" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gs8r7y9oy9ck)" height="60.8047" id="C_0000269096719176302663" style="stroke: #A80036; stroke-width: 1.5;" width="194" x="746.5" y="40"/>
<ellipse cx="765.1" cy="56" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M768.0688,61.6406 Q767.4906,61.9375 766.85,62.0781 Q766.2094,62.2344 765.5063,62.2344 Q763.0063,62.2344 761.6781,60.5938 Q760.3656,58.9375 760.3656,55.8125 Q760.3656,52.6875 761.6781,51.0313 Q763.0063,49.375 765.5063,49.375 Q766.2094,49.375 766.85,49.5313 Q767.5063,49.6875 768.0688,49.9844 L768.0688,52.7031 Q767.4438,52.125 766.85,51.8594 Q766.2563,51.5781 765.6313,51.5781 Q764.2875,51.5781 763.6,52.6563 Q762.9125,53.7188 762.9125,55.8125 Q762.9125,57.9063 763.6,58.9844 Q764.2875,60.0469 765.6313,60.0469 Q766.2563,60.0469 766.85,59.7813 Q767.4438,59.5 768.0688,58.9219 L768.0688,61.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="779.9" y="60.1543">E::nested_template</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="30" x="913.5" y="37"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="914.5" y="49.1387">char</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="747.5" x2="939.5" y1="72" y2="72"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L47" target="_top" title="getDecl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L47" xlink:show="new" xlink:title="getDecl" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="752.5" y="78"/>
<ellipse cx="757.5" cy="83" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L47" target="_top" title="getDecl" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00008/t00008.cc#L47" xlink:show="new" xlink:title="getDecl" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="168" x="766.5" y="86.2104">getDecl(char * c) : DeclType *</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="747.5" x2="939.5" y1="92.8047" y2="92.8047"/>
<path d="M578.5,264.64 C578.5,277.97 578.5,295.27 578.5,311.55 " fill="none" id="C_0011593091325657631773-&gt;C_0015748606021494945899" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="585.5,311.61,578.5,331.61,571.5,311.61,585.5,311.61" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M578.5,131.05 C578.5,160.58 578.5,194.53 578.5,216.46 " fill="none" id="C_0012499174870531358858&lt;-C_0011593091325657631773" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="578.5,117.85,574.5,123.85,578.5,129.85,582.5,123.85,578.5,117.85" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="584.5" cy="172.0664" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="591.5" y="176.0669">ints</text>
<path d="M915.02,271.16 C901.78,287.89 885.16,308.88 871.28,326.42 " fill="none" id="C_0012395353627920519248-&gt;C_0014301267656419448926" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="866.9278" cy="331.9193" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="871.8955" x2="861.96" y1="325.6487" y2="338.19"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="873.1984" x2="860.6571" y1="336.8871" y2="326.9516"/>
<path d="M840.4,101.25 C836.74,140.24 831.51,210.75 834.5,271 C835.36,288.27 837.13,307.32 838.87,323.47 " fill="none" id="C_0000269096719176302663-&gt;C_0014301267656419448926" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="839.6807" cy="330.5307" fill="#FFFFFF" rx="8" ry="8" style="stroke: #A80036; stroke-width: 1.0;"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="838.7813" x2="840.58" y1="322.5814" y2="338.48"/>
<line style="stroke: #A80036; stroke-width: 1.0;" x1="847.6299" x2="831.7314" y1="329.6314" y2="331.4301"/>
<path d="M860.27,101.15 C874.53,126.38 895.29,163.08 911.83,192.34 " fill="none" id="C_0000269096719176302663-&gt;C_0012395353627920519248" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="917.99,189.01,921.74,209.87,905.8,195.9,917.99,189.01" style="stroke: #A80036; stroke-width: 1.0;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

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

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,22 +1,24 @@
# t00009 - Template instantiation
## Config
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
t00009_class:
type: class
glob:
- ../../tests/t00009/t00009.cc
using_namespace:
- clanguml::t00009
- t00009.cc
using_namespace: clanguml::t00009
plantuml:
style:
instantiation: up
association: up
aggregation: up
include:
namespaces:
- clanguml::t00009
```
## Source code
File t00009.cc
File `tests/t00009/t00009.cc`
```cpp
#include <string>
#include <vector>
@@ -39,5 +41,268 @@ public:
} // namespace clanguml
```
## Generated UML diagrams
## Generated PlantUML diagrams
![t00009_class](./t00009_class.svg "Template instantiation")
## Generated Mermaid diagrams
![t00009_class](./t00009_class_mermaid.svg "Template instantiation")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "A<T>",
"id": "3297831912893280842",
"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": {
"column": 7,
"file": "t00009.cc",
"line": 9,
"translation_unit": "t00009.cc"
},
"type": "T"
}
],
"methods": [],
"name": "A",
"namespace": "clanguml::t00009",
"source_location": {
"column": 29,
"file": "t00009.cc",
"line": 7,
"translation_unit": "t00009.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "A<int>",
"id": "15155099504347999",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00009",
"source_location": {
"column": 29,
"file": "t00009.cc",
"line": 7,
"translation_unit": "t00009.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "int"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "A<std::string>",
"id": "10726345870745113562",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00009",
"source_location": {
"column": 29,
"file": "t00009.cc",
"line": 7,
"translation_unit": "t00009.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "std::string"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "A<std::vector<std::string>>",
"id": "10966470382097990802",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00009",
"source_location": {
"column": 29,
"file": "t00009.cc",
"line": 7,
"translation_unit": "t00009.cc"
},
"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": "B",
"id": "1409917715601978480",
"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": {
"column": 12,
"file": "t00009.cc",
"line": 14,
"translation_unit": "t00009.cc"
},
"type": "A<int>"
},
{
"access": "public",
"is_static": false,
"name": "astring",
"source_location": {
"column": 21,
"file": "t00009.cc",
"line": 15,
"translation_unit": "t00009.cc"
},
"type": "A<std::string> *"
},
{
"access": "public",
"is_static": false,
"name": "avector",
"source_location": {
"column": 34,
"file": "t00009.cc",
"line": 16,
"translation_unit": "t00009.cc"
},
"type": "A<std::vector<std::string>> &"
}
],
"methods": [],
"name": "B",
"namespace": "clanguml::t00009",
"source_location": {
"column": 7,
"file": "t00009.cc",
"line": 12,
"translation_unit": "t00009.cc"
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00009_class",
"package_type": "namespace",
"relationships": [
{
"access": "public",
"destination": "3297831912893280842",
"source": "15155099504347999",
"type": "instantiation"
},
{
"access": "public",
"destination": "3297831912893280842",
"source": "10726345870745113562",
"type": "instantiation"
},
{
"access": "public",
"destination": "3297831912893280842",
"source": "10966470382097990802",
"type": "instantiation"
},
{
"access": "public",
"destination": "15155099504347999",
"label": "aint",
"source": "1409917715601978480",
"type": "aggregation"
},
{
"access": "public",
"destination": "10726345870745113562",
"label": "astring",
"source": "1409917715601978480",
"type": "association"
},
{
"access": "public",
"destination": "3297831912893280842",
"label": "astring",
"source": "1409917715601978480",
"type": "association"
},
{
"access": "public",
"destination": "10966470382097990802",
"label": "avector",
"source": "1409917715601978480",
"type": "association"
},
{
"access": "public",
"destination": "3297831912893280842",
"label": "avector",
"source": "1409917715601978480",
"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">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="352px" preserveAspectRatio="none" style="width:576px;height:352px;" version="1.1" viewBox="0 0 576 352" width="576px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1jwjaqynltgli" width="300%" x="-1" y="-1">
<filter height="300%" id="f138ix9t566i52" 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,93 +9,102 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1jwjaqynltgli)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="185.5" y="277"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="186.5" y="289.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117.5" x2="190.5" y1="312" y2="312"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f138ix9t566i52)" height="60.8047" id="C_0003297831912893280842" style="stroke: #A80036; stroke-width: 1.5;" width="75" x="366.5" y="8"/>
<ellipse cx="392.3" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M395.2688,29.6406 Q394.6906,29.9375 394.05,30.0781 Q393.4094,30.2344 392.7063,30.2344 Q390.2063,30.2344 388.8781,28.5938 Q387.5656,26.9375 387.5656,23.8125 Q387.5656,20.6875 388.8781,19.0313 Q390.2063,17.375 392.7063,17.375 Q393.4094,17.375 394.05,17.5313 Q394.7063,17.6875 395.2688,17.9844 L395.2688,20.7031 Q394.6438,20.125 394.05,19.8594 Q393.4563,19.5781 392.8313,19.5781 Q391.4875,19.5781 390.8,20.6563 Q390.1125,21.7188 390.1125,23.8125 Q390.1125,25.9063 390.8,26.9844 Q391.4875,28.0469 392.8313,28.0469 Q393.4563,28.0469 394.05,27.7813 Q394.6438,27.5 395.2688,26.9219 L395.2688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="408.7" 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="9" x="435.5" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="436.5" y="17.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="367.5" x2="440.5" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="367.5" x2="440.5" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="372.5" y="54"/>
<ellipse cx="377.5" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L9" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="386.5" y="62.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(#f1jwjaqynltgli)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="51" y="168"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="52" y="180.1387">int</text>
<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(#f1jwjaqynltgli)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="64" x="146" y="168"/>
<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(#f1jwjaqynltgli)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="150" x="287" y="168"/>
<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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L12" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L12" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1jwjaqynltgli)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f138ix9t566i52)" height="48" id="C_0000015155099504347999" style="stroke: #A80036; stroke-width: 1.5;" width="60" x="374" y="130"/>
<ellipse cx="389" cy="146" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M391.9688,151.6406 Q391.3906,151.9375 390.75,152.0781 Q390.1094,152.2344 389.4063,152.2344 Q386.9063,152.2344 385.5781,150.5938 Q384.2656,148.9375 384.2656,145.8125 Q384.2656,142.6875 385.5781,141.0313 Q386.9063,139.375 389.4063,139.375 Q390.1094,139.375 390.75,139.5313 Q391.4063,139.6875 391.9688,139.9844 L391.9688,142.7031 Q391.3438,142.125 390.75,141.8594 Q390.1563,141.5781 389.5313,141.5781 Q388.1875,141.5781 387.5,142.6563 Q386.8125,143.7188 386.8125,145.8125 Q386.8125,147.9063 387.5,148.9844 Q388.1875,150.0469 389.5313,150.0469 Q390.1563,150.0469 390.75,149.7813 Q391.3438,149.5 391.9688,148.9219 L391.9688,151.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="403" y="150.1543">A</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="419" y="127"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="420" y="139.1387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="375" x2="433" y1="162" y2="162"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="375" x2="433" y1="170" y2="170"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f138ix9t566i52)" height="48" id="C_0010726345870745113562" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="233" y="130"/>
<ellipse cx="248" cy="146" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M250.9688,151.6406 Q250.3906,151.9375 249.75,152.0781 Q249.1094,152.2344 248.4063,152.2344 Q245.9063,152.2344 244.5781,150.5938 Q243.2656,148.9375 243.2656,145.8125 Q243.2656,142.6875 244.5781,141.0313 Q245.9063,139.375 248.4063,139.375 Q249.1094,139.375 249.75,139.5313 Q250.4063,139.6875 250.9688,139.9844 L250.9688,142.7031 Q250.3438,142.125 249.75,141.8594 Q249.1563,141.5781 248.5313,141.5781 Q247.1875,141.5781 246.5,142.6563 Q245.8125,143.7188 245.8125,145.8125 Q245.8125,147.9063 246.5,148.9844 Q247.1875,150.0469 248.5313,150.0469 Q249.1563,150.0469 249.75,149.7813 Q250.3438,149.5 250.9688,148.9219 L250.9688,151.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="262" y="150.1543">A</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="64" x="278" y="127"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="62" x="279" y="139.1387">std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="234" x2="338" y1="162" y2="162"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="234" x2="338" y1="170" y2="170"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f138ix9t566i52)" height="48" id="C_0010966470382097990802" style="stroke: #A80036; stroke-width: 1.5;" width="192" x="6" y="130"/>
<ellipse cx="21" cy="146" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,151.6406 Q23.3906,151.9375 22.75,152.0781 Q22.1094,152.2344 21.4063,152.2344 Q18.9063,152.2344 17.5781,150.5938 Q16.2656,148.9375 16.2656,145.8125 Q16.2656,142.6875 17.5781,141.0313 Q18.9063,139.375 21.4063,139.375 Q22.1094,139.375 22.75,139.5313 Q23.4063,139.6875 23.9688,139.9844 L23.9688,142.7031 Q23.3438,142.125 22.75,141.8594 Q22.1563,141.5781 21.5313,141.5781 Q20.1875,141.5781 19.5,142.6563 Q18.8125,143.7188 18.8125,145.8125 Q18.8125,147.9063 19.5,148.9844 Q20.1875,150.0469 21.5313,150.0469 Q22.1563,150.0469 22.75,149.7813 Q23.3438,149.5 23.9688,148.9219 L23.9688,151.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="150.1543">A</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="150" x="51" y="127"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="148" x="52" y="139.1387">std::vector&lt;std::string&gt;</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="197" y1="162" y2="162"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="197" y1="170" y2="170"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L12" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L12" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f138ix9t566i52)" height="86.4141" id="C_0001409917715601978480" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="275.5" y="255"/>
<ellipse cx="395.75" cy="271" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M398.7188,276.6406 Q398.1406,276.9375 397.5,277.0781 Q396.8594,277.2344 396.1563,277.2344 Q393.6563,277.2344 392.3281,275.5938 Q391.0156,273.9375 391.0156,270.8125 Q391.0156,267.6875 392.3281,266.0313 Q393.6563,264.375 396.1563,264.375 Q396.8594,264.375 397.5,264.5313 Q398.1563,264.6875 398.7188,264.9844 L398.7188,267.7031 Q398.0938,267.125 397.5,266.8594 Q396.9063,266.5781 396.2813,266.5781 Q394.9375,266.5781 394.25,267.6563 Q393.5625,268.7188 393.5625,270.8125 Q393.5625,272.9063 394.25,273.9844 Q394.9375,275.0469 396.2813,275.0469 Q396.9063,275.0469 397.5,274.7813 Q398.0938,274.5 398.7188,273.9219 L398.7188,276.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="416.25" y="275.1543">B</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="276.5" x2="531.5" y1="287" y2="287"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="276.5" x2="531.5" y1="295" y2="295"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="281.5" y="301"/>
<ellipse cx="286.5" cy="306" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L14" target="_top" title="aint" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="295.5" y="309.2104">aint : A&lt;int&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="281.5" y="313.8047"/>
<ellipse cx="286.5" cy="318.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="26.5" x2="281.5" y1="86.4141" y2="86.4141"/>
<path d="M60.16,219.24 C74.1,232.65 92.08,249.94 108.57,265.8 " fill="none" id="C_0000001894387438043499-&gt;C_0000412228989111660105" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="113.57,260.9,123.13,279.81,103.86,270.99,113.57,260.9" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M154,219.24 C154,230.87 154,245.42 154,259.43 " fill="none" id="C_0001340793233843139195-&gt;C_0000412228989111660105" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="161,259.81,154,279.81,147,259.81,161,259.81" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M300.32,219.24 C274.03,235.46 238.51,257.37 209.05,275.54 " fill="none" id="C_0001370808797762248850-&gt;C_0000412228989111660105" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="212.33,281.75,191.63,286.29,204.98,269.83,212.33,281.75" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M110.41,104.45 C91.49,127.23 70.29,152.74 55.37,170.69 " fill="none" id="C_0000176239714450247310&lt;-C_0000001894387438043499" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="118.92,94.22,112.0083,96.2764,111.2482,103.4473,118.1598,101.3909,118.92,94.22" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="98" cy="133.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="105" y="137.0669">aint</text>
<path d="M154,94.22 C154,117.28 154,145.22 154,165.66 " fill="none" id="C_0000176239714450247310-&gt;C_0001340793233843139195" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="154,170.69,158,161.69,154,165.69,150,161.69,154,170.69" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="160" cy="133.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="44" x="167" y="137.0669">astring</text>
<path d="M208.71,94.22 C239.58,118.04 277.19,147.07 303.87,167.66 " fill="none" id="C_0000176239714450247310-&gt;C_0001370808797762248850" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="308.06,170.89,303.3833,162.2223,304.1033,167.8332,298.4924,168.5531,308.06,170.89" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="273" cy="133.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="48" x="280" y="137.0669">avector</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="295.5" y="322.0151">astring : A&lt;std::string&gt; *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="281.5" y="326.6094"/>
<ellipse cx="286.5" cy="331.6094" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L16" target="_top" title="avector" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="295.5" y="334.8198">avector : A&lt;std::vector&lt;std::string&gt;&gt; &amp;</text>
</a>
<path d="M404,89.43 C404,103.45 404,118.05 404,129.71 " fill="none" id="C_0003297831912893280842&lt;-C_0000015155099504347999" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="397,89.02,404,69.02,411,89.02,397,89.02" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M358.73,83.04 C342.22,98.92 324.19,116.26 310.22,129.71 " fill="none" id="C_0003297831912893280842&lt;-C_0010726345870745113562" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="354.04,77.84,373.3,69.02,363.74,87.93,354.04,77.84" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M347.63,60.68 C295.25,80.37 217.4,109.63 163.45,129.91 " fill="none" id="C_0003297831912893280842&lt;-C_0010966470382097990802" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="345.18,54.13,366.36,53.65,350.1,67.23,345.18,54.13" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M404,178.13 C404,195.39 404,219.72 404,241.88 " fill="none" id="C_0000015155099504347999-&gt;C_0001409917715601978480" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="404,254.95,408,248.95,404,242.95,400,248.95,404,254.95" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="24" x="405" y="221.0669">aint</text>
<path d="M308.55,182.14 C325.66,202.72 349.49,231.4 369.06,254.95 " fill="none" id="C_0010726345870745113562&lt;-C_0001409917715601978480" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="305.22,178.13,307.8845,187.6116,308.4111,181.9793,314.0433,182.5059,305.22,178.13" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="44" x="343" y="221.0669">astring</text>
<path d="M427.34,73.87 C437.01,90.14 447.09,110.28 452,130 C462.63,172.74 445.53,221.05 428.86,254.67 " fill="none" id="C_0003297831912893280842&lt;-C_0001409917715601978480" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="424.63,69.39,425.8927,79.1576,427.2297,73.661,432.7263,74.998,424.63,69.39" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="44" x="456" y="158.5669">astring</text>
<path d="M445.84,63.05 C469.13,78.7 495.97,101.58 509,130 C517.89,149.39 516.24,157.93 509,178 C498.39,207.42 476.54,234.14 455.52,254.78 " fill="none" id="C_0003297831912893280842&lt;-C_0001409917715601978480-1" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="441.54,60.21,446.8426,68.5096,445.7112,62.967,451.2538,61.8356,441.54,60.21" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="48" x="516" y="158.5669">avector</text>
<path d="M155.93,180.36 C199.93,201.05 263.03,230.72 314.58,254.95 " fill="none" id="C_0010966470382097990802&lt;-C_0001409917715601978480" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="151.19,178.13,157.6336,185.5785,155.7151,180.2569,161.0367,178.3384,151.19,178.13" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="48" x="245" y="221.0669">avector</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,271 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" aria-roledescription="classDiagram" role="graphics-document document" viewBox="0 0 705.046875 393" style="max-width: 705.047px; background-color: white;" width="705.046875" id="my-svg">
<style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#my-svg g.classGroup text .title{font-weight:bolder;}#my-svg .nodeLabel,#my-svg .edgeLabel{color:#131300;}#my-svg .edgeLabel .label rect{fill:#ECECFF;}#my-svg .label text{fill:#131300;}#my-svg .edgeLabel .label span{background:#ECECFF;}#my-svg .classTitle{font-weight:bolder;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .divider{stroke:#9370DB;stroke-width:1;}#my-svg g.clickable{cursor:pointer;}#my-svg g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#my-svg g.classGroup line{stroke:#9370DB;stroke-width:1;}#my-svg .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#my-svg .classLabel .label{fill:#9370DB;font-size:10px;}#my-svg .relation{stroke:#333333;stroke-width:1;fill:none;}#my-svg .dashed-line{stroke-dasharray:3;}#my-svg .dotted-line{stroke-dasharray:1 2;}#my-svg #compositionStart,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #compositionEnd,#my-svg .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #dependencyStart,#my-svg .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionStart,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #extensionEnd,#my-svg .extension{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationStart,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #aggregationEnd,#my-svg .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopStart,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg #lollipopEnd,#my-svg .lollipop{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#my-svg .edgeTerminals{font-size:11px;}#my-svg .classTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style>
<g>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker aggregation classDiagram" id="classDiagram-aggregationStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker aggregation classDiagram" id="classDiagram-aggregationEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker extension classDiagram" id="classDiagram-extensionStart">
<path d="M 1,7 L18,13 V 1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker extension classDiagram" id="classDiagram-extensionEnd">
<path d="M 1,1 V 13 L18,7 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker composition classDiagram" id="classDiagram-compositionStart">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker composition classDiagram" id="classDiagram-compositionEnd">
<path d="M 18,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker dependency classDiagram" id="classDiagram-dependencyStart">
<path d="M 5,7 L9,13 L1,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="28" markerWidth="20" refY="7" refX="19" class="marker dependency classDiagram" id="classDiagram-dependencyEnd">
<path d="M 18,7 L9,13 L14,7 L9,1 Z"/>
</marker>
</defs>
<defs>
<marker orient="auto" markerHeight="240" markerWidth="190" refY="7" refX="0" class="marker lollipop classDiagram" id="classDiagram-lollipopStart">
<circle r="6" cy="7" cx="6" fill="white" stroke="black"/>
</marker>
</defs>
<g class="root">
<g class="clusters"/>
<g class="edgePaths">
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id1" d="M40.3984375,256L40.3984375,260.1666666666667C40.3984375,264.3333333333333,40.3984375,272.6666666666667,94.88020833333333,286.3410697048483C149.36197916666666,300.0154727430299,258.3255208333333,319.03094548605975,312.8072916666667,328.53868185757466L367.2890625,338.0464182290896"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id2" d="M184.96875,256L184.96875,260.1666666666667C184.96875,264.3333333333333,184.96875,272.6666666666667,215.35546875,285.5429830347637C245.7421875,298.41929940286076,306.515625,315.83859880572146,336.90234375,324.5482485071518L367.2890625,333.25789820858216"/>
<path marker-end="url(#classDiagram-extensionEnd)" style="fill:none" class="edge-pattern-dashed relation" id="id3" d="M410,256L410,260.1666666666667C410,264.3333333333333,410,272.6666666666667,410,281C410,289.3333333333333,410,297.6666666666667,410,301.8333333333333L410,306"/>
<path marker-start="url(#classDiagram-aggregationStart)" style="fill:none" class="edge-pattern-solid relation" id="id4" d="M262.203125,107.68869559703228L225.23567708333334,117.24057966419356C188.26822916666666,126.79246373135486,114.33333333333333,145.89623186567744,77.36588541666667,161.1147825995054C40.3984375,176.33333333333334,40.3984375,187.66666666666666,40.3984375,193.33333333333334L40.3984375,199"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id5" d="M265.0845876963351,131L251.73194808027927,136.66666666666666C238.3793084642234,142.33333333333334,211.6740292321117,153.66666666666666,198.32138961605585,165C184.96875,176.33333333333334,184.96875,187.66666666666666,184.96875,193.33333333333334L184.96875,199"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id6" d="M523.692490183246,131L534.1682209860384,136.66666666666666C544.6439517888307,142.33333333333334,565.5954133944153,153.66666666666666,576.0711441972077,169.75C586.546875,185.83333333333334,586.546875,206.66666666666666,586.546875,226C586.546875,245.33333333333334,586.546875,263.1666666666667,564.2408854166666,280.23264964451135C541.9348958333334,297.29863262235597,497.3229166666667,313.59726524471193,475.0169270833333,321.7465815558899L452.7109375,329.8958978670679"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id7" d="M410,131L410,136.66666666666666C410,142.33333333333334,410,153.66666666666666,410,165C410,176.33333333333334,410,187.66666666666666,410,193.33333333333334L410,199"/>
<path marker-end="url(#classDiagram-dependencyEnd)" style="fill:none" class="edge-pattern-solid relation" id="id8" d="M557.796875,124.60489233209296L575.8541666666666,131.33741027674412C593.9114583333334,138.06992822139532,630.0260416666666,151.53496411069764,648.0833333333334,168.6841487220155C666.140625,185.83333333333334,666.140625,206.66666666666666,666.140625,226C666.140625,245.33333333333334,666.140625,263.1666666666667,630.5690104166666,281.0407923097257C594.9973958333334,298.9149179527847,523.8541666666666,316.82983590556944,488.2825520833333,325.7872948819618L452.7109375,334.74475385835416"/>
</g>
<g class="edgeLabels">
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(undefined, undefined)" class="edgeLabel">
<g transform="translate(0, 0)" class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel"/>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(40.3984375, 165)" class="edgeLabel">
<g transform="translate(-17.5703125, -9)" class="label">
<foreignObject height="18" width="35.140625">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+aint</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(184.96875, 165)" class="edgeLabel">
<g transform="translate(-28.6875, -9)" class="label">
<foreignObject height="18" width="57.375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+astring</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(586.546875, 227.5)" class="edgeLabel">
<g transform="translate(-28.6875, -9)" class="label">
<foreignObject height="18" width="57.375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+astring</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(410, 165)" class="edgeLabel">
<g transform="translate(-30.90625, -9)" class="label">
<foreignObject height="18" width="61.8125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+avector</span>
</span>
</div>
</foreignObject>
</g>
</g>
<g transform="translate(666.140625, 227.5)" class="edgeLabel">
<g transform="translate(-30.90625, -9)" class="label">
<foreignObject height="18" width="61.8125">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="edgeLabel">
<span class="edgeLabel">+avector</span>
</span>
</div>
</foreignObject>
</g>
</g>
</g>
<g class="nodes">
<a transform="translate(410, 345.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7">
<g title="A" id="classId-C_0003297831912893280842-0" class="node default clickable">
<rect height="79" width="85.421875" y="-39.5" x="-42.7109375" class="outer title-state"/>
<line y2="-9.5" y1="-9.5" x2="42.7109375" x1="-42.7109375" class="divider"/>
<line y2="28.5" y1="28.5" x2="42.7109375" x1="-42.7109375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -20.0078125, -32)" height="18" width="40.015625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;T&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -35.2109375, 2)" height="18" width="70.421875">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+value : T</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(40.3984375, 227.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7">
<g title="A" id="classId-C_0000015155099504347999-1" class="node default clickable">
<rect height="57" width="64.796875" y="-28.5" x="-32.3984375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="32.3984375" x1="-32.3984375" class="divider"/>
<line y2="17.5" y1="17.5" x2="32.3984375" x1="-32.3984375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -24.8984375, -21)" height="18" width="49.796875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;int&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(184.96875, 227.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7">
<g title="A" id="classId-C_0010726345870745113562-2" class="node default clickable">
<rect height="57" width="124.34375" y="-28.5" x="-62.171875" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="62.171875" x1="-62.171875" class="divider"/>
<line y2="17.5" y1="17.5" x2="62.171875" x1="-62.171875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -54.671875, -21)" height="18" width="109.34375" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;std::string&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(410, 227.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L7">
<g title="A" id="classId-C_0010966470382097990802-3" class="node default clickable">
<rect height="57" width="225.71875" y="-28.5" x="-112.859375" class="outer title-state"/>
<line y2="1.5" y1="1.5" x2="112.859375" x1="-112.859375" class="divider"/>
<line y2="17.5" y1="17.5" x2="112.859375" x1="-112.859375" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -105.359375, -21)" height="18" width="210.71875" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">A&lt;std::vector&lt;std::string&gt;&gt;</span>
</div>
</foreignObject>
</g>
</g>
</a>
<a transform="translate(410, 69.5)" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00009/t00009.cc#L12">
<g title="B" id="classId-C_0001409917715601978480-4" class="node default clickable">
<rect height="123" width="295.59375" y="-61.5" x="-147.796875" class="outer title-state"/>
<line y2="-31.5" y1="-31.5" x2="147.796875" x1="-147.796875" class="divider"/>
<line y2="50.5" y1="50.5" x2="147.796875" x1="-147.796875" class="divider"/>
<g class="label">
<foreignObject height="0" width="0">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel"/>
</div>
</foreignObject>
<foreignObject transform="translate( -5.78125, -54)" height="18" width="11.5625" class="classTitle">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">B</span>
</div>
</foreignObject>
<foreignObject transform="translate( -140.296875, -20)" height="18" width="93.859375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+aint : A&lt;int&gt;</span>
</div>
</foreignObject>
<foreignObject transform="translate( -140.296875, 2)" height="18" width="168.828125">
<div xmlns="http://www.w3.org/1999/xhtml" style="font-style: italic; display: inline-block; white-space: nowrap;">
<span style="font-style:italic;" class="nodeLabel">+astring : A&lt;std::string&gt; </span>
</div>
</foreignObject>
<foreignObject transform="translate( -140.296875, 24)" height="18" width="280.59375">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">
<span class="nodeLabel">+avector : A&lt;std::vector&lt;std::string&gt;&gt; &amp;</span>
</div>
</foreignObject>
</g>
</g>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,22 +1,19 @@
# t00010 - Basic template instantiation
## Config
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
t00010_class:
type: class
glob:
- ../../tests/t00010/t00010.cc
using_namespace:
- clanguml::t00010
- t00010.cc
using_namespace: clanguml::t00010
include:
namespaces:
- clanguml::t00010
```
## Source code
File t00010.cc
File `tests/t00010/t00010.cc`
```cpp
#include <string>
#include <vector>
@@ -43,5 +40,247 @@ public:
} // namespace clanguml
```
## Generated UML diagrams
## Generated PlantUML diagrams
![t00010_class](./t00010_class.svg "Basic template instantiation")
## Generated Mermaid diagrams
![t00010_class](./t00010_class_mermaid.svg "Basic template instantiation")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "A<T,P>",
"id": "17777732951236112797",
"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": {
"column": 7,
"file": "t00010.cc",
"line": 9,
"translation_unit": "t00010.cc"
},
"type": "T"
},
{
"access": "public",
"is_static": false,
"name": "second",
"source_location": {
"column": 7,
"file": "t00010.cc",
"line": 10,
"translation_unit": "t00010.cc"
},
"type": "P"
}
],
"methods": [],
"name": "A",
"namespace": "clanguml::t00010",
"source_location": {
"column": 41,
"file": "t00010.cc",
"line": 7,
"translation_unit": "t00010.cc"
},
"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": "A<T,std::string>",
"id": "14892165549935322401",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [],
"methods": [],
"name": "A",
"namespace": "clanguml::t00010",
"source_location": {
"column": 41,
"file": "t00010.cc",
"line": 7,
"translation_unit": "t00010.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
},
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "std::string"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "B<T>",
"id": "18428891408661668669",
"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": {
"column": 23,
"file": "t00010.cc",
"line": 15,
"translation_unit": "t00010.cc"
},
"type": "A<T,std::string>"
}
],
"methods": [],
"name": "B",
"namespace": "clanguml::t00010",
"source_location": {
"column": 29,
"file": "t00010.cc",
"line": 13,
"translation_unit": "t00010.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "B<int>",
"id": "11987015515847592796",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": true,
"is_union": false,
"members": [],
"methods": [],
"name": "B",
"namespace": "clanguml::t00010",
"source_location": {
"column": 29,
"file": "t00010.cc",
"line": 13,
"translation_unit": "t00010.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "int"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "C",
"id": "15047732631751140570",
"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": {
"column": 12,
"file": "t00010.cc",
"line": 20,
"translation_unit": "t00010.cc"
},
"type": "B<int>"
}
],
"methods": [],
"name": "C",
"namespace": "clanguml::t00010",
"source_location": {
"column": 7,
"file": "t00010.cc",
"line": 18,
"translation_unit": "t00010.cc"
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00010_class",
"package_type": "namespace",
"relationships": [
{
"access": "public",
"destination": "17777732951236112797",
"source": "14892165549935322401",
"type": "instantiation"
},
{
"access": "public",
"destination": "14892165549935322401",
"label": "astring",
"source": "18428891408661668669",
"type": "aggregation"
},
{
"access": "public",
"destination": "18428891408661668669",
"source": "11987015515847592796",
"type": "instantiation"
},
{
"access": "public",
"destination": "11987015515847592796",
"label": "aintstring",
"source": "15047732631751140570",
"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="fh5mtwev4iumv" width="300%" x="-1" y="-1">
<filter height="300%" id="fdsap4fgpajbv" 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,87 +9,91 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fh5mtwev4iumv)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fdsap4fgpajbv)" height="73.6094" id="C_0017777732951236112797" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="20" x="118.5" y="499"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="18" x="119.5" y="511.1387">T,P</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="50.5" x2="134.5" y1="534" y2="534"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="50.5" x2="134.5" y1="542" y2="542"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="548"/>
<ellipse cx="60.5" cy="553" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L9" target="_top" title="first" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="556.2104">first : T</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="560.8047"/>
<ellipse cx="60.5" cy="565.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L10" target="_top" title="second" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="569.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(#fh5mtwev4iumv)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="75" x="79" y="390"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="73" x="80" y="402.1387">T,std::string</text>
<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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L13" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L13" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fh5mtwev4iumv)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L7" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L7" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fdsap4fgpajbv)" height="48" id="C_0014892165549935322401" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="75" x="79" y="390"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="73" x="80" y="402.1387">T,std::string</text>
<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>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L13" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L13" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fdsap4fgpajbv)" height="60.8047" id="C_0018428891408661668669" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="173" y="252"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="174" y="264.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="178" y1="287" y2="287"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="178" y1="295" y2="295"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="301"/>
<ellipse cx="17" cy="306" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L15" target="_top" title="astring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="309.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(#fh5mtwev4iumv)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="107.5" y="143"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="108.5" y="155.1387">int</text>
<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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L18" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L18" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fh5mtwev4iumv)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L13" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L13" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fdsap4fgpajbv)" height="48" id="C_0011987015515847592796" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="107.5" y="143"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="108.5" y="155.1387">int</text>
<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>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L18" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L18" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fdsap4fgpajbv)" height="60.8047" id="C_0015047732631751140570" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="27.5" x2="157.5" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="54"/>
<ellipse cx="37.5" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00010/t00010.cc#L20" target="_top" title="aintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="62.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"/>
<path d="M92.5,441.14 C92.5,452.67 92.5,467.17 92.5,481.41 " fill="none" id="C_0001861520693741915300-&gt;C_0002222216618904514099" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M92.5,441.14 C92.5,452.67 92.5,467.17 92.5,481.41 " fill="none" id="C_0014892165549935322401-&gt;C_0017777732951236112797" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="99.5,481.71,92.5,501.71,85.5,481.71,99.5,481.71" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M92.5,329.5 C92.5,350.65 92.5,375.32 92.5,392.88 " fill="none" id="C_0002303611426082708583&lt;-C_0001861520693741915300" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M92.5,329.5 C92.5,350.65 92.5,375.32 92.5,392.88 " fill="none" id="C_0018428891408661668669&lt;-C_0014892165549935322401" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="92.5,316.21,88.5,322.21,92.5,328.21,96.5,322.21,92.5,316.21" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="98.5" cy="355.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="44" x="105.5" y="359.0669">astring</text>
<path d="M92.5,194.24 C92.5,205.87 92.5,220.42 92.5,234.43 " fill="none" id="C_0001498376939480949099-&gt;C_0002303611426082708583" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M92.5,194.24 C92.5,205.87 92.5,220.42 92.5,234.43 " fill="none" id="C_0011987015515847592796-&gt;C_0018428891408661668669" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="99.5,234.81,92.5,254.81,85.5,234.81,99.5,234.81" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M92.5,82.5 C92.5,103.65 92.5,128.32 92.5,145.88 " fill="none" id="C_0001880966578968892571&lt;-C_0001498376939480949099" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M92.5,82.5 C92.5,103.65 92.5,128.32 92.5,145.88 " fill="none" id="C_0015047732631751140570&lt;-C_0011987015515847592796" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="92.5,69.21,88.5,75.21,92.5,81.21,96.5,75.21,92.5,69.21" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="98.5" cy="108.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="60" x="105.5" y="112.0669">aintstring</text>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

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

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,26 +1,22 @@
# t00011 - Friend relationships
## Config
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
t00011_class:
type: class
glob:
- ../../tests/t00011/t00011.cc
using_namespace:
- clanguml::t00011
- t00011.cc
using_namespace: clanguml::t00011
include:
namespaces:
- clanguml::t00011
```
## Source code
File t00011.cc
File `tests/t00011/t00011.cc`
```cpp
namespace external {
class C {
};
class C { };
}
namespace clanguml {
@@ -53,5 +49,191 @@ public:
} // namespace clanguml
```
## Generated UML diagrams
## Generated PlantUML diagrams
![t00011_class](./t00011_class.svg "Friend relationships")
## Generated Mermaid diagrams
![t00011_class](./t00011_class_mermaid.svg "Friend relationships")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "D<T>",
"id": "9205119221984418212",
"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": {
"column": 7,
"file": "t00011.cc",
"line": 11,
"translation_unit": "t00011.cc"
},
"type": "T"
}
],
"methods": [],
"name": "D",
"namespace": "clanguml::t00011",
"source_location": {
"column": 29,
"file": "t00011.cc",
"line": 10,
"translation_unit": "t00011.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "T",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "A",
"id": "11364135622862429756",
"is_abstract": false,
"is_nested": false,
"is_struct": false,
"is_template": false,
"is_union": false,
"members": [],
"methods": [
{
"access": "public",
"display_name": "foo",
"is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false,
"is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "foo",
"parameters": [],
"source_location": {
"column": 10,
"file": "t00011.cc",
"line": 16,
"translation_unit": "t00011.cc"
},
"template_parameters": [],
"type": "void"
}
],
"name": "A",
"namespace": "clanguml::t00011",
"source_location": {
"column": 7,
"file": "t00011.cc",
"line": 14,
"translation_unit": "t00011.cc"
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "B",
"id": "13499420831616398636",
"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": {
"column": 8,
"file": "t00011.cc",
"line": 29,
"translation_unit": "t00011.cc"
},
"type": "A *"
}
],
"methods": [
{
"access": "public",
"display_name": "foo",
"is_const": false,
"is_consteval": false,
"is_constexpr": false,
"is_constructor": false,
"is_copy_assignment": false,
"is_coroutine": false,
"is_defaulted": false,
"is_deleted": false,
"is_move_assignment": false,
"is_noexcept": false,
"is_operator": false,
"is_pure_virtual": false,
"is_static": false,
"is_virtual": false,
"name": "foo",
"parameters": [],
"source_location": {
"column": 10,
"file": "t00011.cc",
"line": 28,
"translation_unit": "t00011.cc"
},
"template_parameters": [],
"type": "void"
}
],
"name": "B",
"namespace": "clanguml::t00011",
"source_location": {
"column": 7,
"file": "t00011.cc",
"line": 26,
"translation_unit": "t00011.cc"
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00011_class",
"package_type": "namespace",
"relationships": [
{
"access": "public",
"destination": "13499420831616398636",
"label": "<<friend>>",
"source": "11364135622862429756",
"type": "friendship"
},
{
"access": "public",
"destination": "11364135622862429756",
"label": "m_a",
"source": "13499420831616398636",
"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="f1f80tzpp38ril" width="300%" x="-1" y="-1">
<filter height="300%" id="ftdzu909xd3qt" 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,55 +9,65 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L11" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L11" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f80tzpp38ril)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L10" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L10" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ftdzu909xd3qt)" height="60.8047" id="C_0009205119221984418212" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="75" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="76" y="17.1387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="80" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="80" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.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="12" y="46"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="48"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="54"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="14" y="56"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.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="26" y="54.2104">value : T</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L11" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="62.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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L15" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L15" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f80tzpp38ril)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ftdzu909xd3qt)" height="60.8047" id="C_0011364135622862429756" 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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="48" y2="48"/>
<ellipse cx="127" cy="59" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="136" y="62.2104">foo() : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L27" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L27" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f80tzpp38ril)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L16" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L16" xlink:show="new" xlink:title="foo" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="122" y="46"/>
<ellipse cx="127" cy="51" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L16" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L16" xlink:show="new" xlink:title="foo" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="136" y="54.2104">foo() : void</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="60.8047" y2="60.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L26" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L26" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#ftdzu909xd3qt)" height="73.6094" id="C_0013499420831616398636" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L30" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L30" xlink:show="new" xlink:title="m_a" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L28" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L28" xlink:show="new" xlink:title="foo" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="122" y="184"/>
<ellipse cx="127" cy="189" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<ellipse cx="127" cy="189" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L30" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00011/t00011.cc#L30" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L28" target="_top" title="foo" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L28" xlink:show="new" xlink:title="foo" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="136" y="192.2104">foo() : void</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="117" x2="202" y1="198.8047" y2="198.8047"/>
<ellipse cx="127" cy="209.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="61" x="136" y="213.0151">foo() : void</text>
<path d="M116.04,73.01 C105.09,85.59 97.85,100.6 103.5,116 C107.44,126.72 113.97,136.89 121.21,145.9 " fill="none" id="C_0001420516952857803719&lt;-C_0001687427603952049829" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L29" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="204.8047"/>
<ellipse cx="127" cy="209.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L29" target="_top" title="m_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00011/t00011.cc#L29" xlink:show="new" xlink:title="m_a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="53" x="136" y="213.0151">m_a : A *</text>
</a>
<path d="M116.04,73.01 C105.09,85.59 97.85,100.6 103.5,116 C107.44,126.72 113.97,136.89 121.21,145.9 " fill="none" id="C_0011364135622862429756&lt;-C_0013499420831616398636" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="119.54,69.18,110.5057,73.102,116.1575,72.8622,116.3973,78.514,119.54,69.18" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="109.5" cy="108.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="52" x="116.5" y="112.0669">«friend»</text>
<path d="M170.13,145.75 C173.19,131.26 175.29,114.39 173.5,99 C172.56,90.88 170.92,82.26 169.08,74.18 " fill="none" id="C_0001687427603952049829-&gt;C_0001420516952857803719" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M170.13,145.75 C173.19,131.26 175.29,114.39 173.5,99 C172.56,90.88 170.92,82.26 169.08,74.18 " fill="none" id="C_0013499420831616398636-&gt;C_0011364135622862429756" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="167.92,69.22,166.0877,78.8969,169.0652,74.0871,173.875,77.0646,167.92,69.22" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="179.5" cy="108.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="28" x="186.5" y="112.0669">m_a</text>

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

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

After

Width:  |  Height:  |  Size: 12 KiB

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="fci54xg5i0ub8" width="300%" x="-1" y="-1">
<filter height="300%" id="f1gwvsh7azp3kx" 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,32 +9,32 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fci54xg5i0ub8)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gwvsh7azp3kx)" height="73.6094" id="C_0014186399120185058260" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="38" x="971" y="303"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="36" x="972" y="315.1387">T,Ts...</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="823" x2="1005" y1="338" y2="338"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="823" x2="1005" y1="346" y2="346"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="352"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="830" y="354"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L12" target="_top" title="value" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="360.2104">value : T</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="364.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="830" y="366.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L13" target="_top" title="values" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="373.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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L16" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L16" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fci54xg5i0ub8)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L16" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L16" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gwvsh7azp3kx)" height="60.8047" id="C_0016489368620538237973" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L17" xlink:show="new" xlink:title="ints" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L17" xlink:show="new" xlink:title="ints" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L17" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L20" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L20" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fci54xg5i0ub8)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L20" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L20" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gwvsh7azp3kx)" height="60.8047" id="C_0005022476627261205034" 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,126 +60,136 @@
<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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L21" xlink:show="new" xlink:title="ints" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L21" xlink:show="new" xlink:title="ints" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L21" target="_top" title="ints" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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(#fci54xg5i0ub8)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="116" x="803" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" 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(#fci54xg5i0ub8)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="115" x="996.5" y="194"/>
<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(#fci54xg5i0ub8)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="34" x="1189" y="194"/>
<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(#fci54xg5i0ub8)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="46" x="1300" y="194"/>
<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(#fci54xg5i0ub8)" height="48" id="C_0001478239414632239754" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="6" y="197"/>
<ellipse cx="21" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,218.6406 Q23.3906,218.9375 22.75,219.0781 Q22.1094,219.2344 21.4063,219.2344 Q18.9063,219.2344 17.5781,217.5938 Q16.2656,215.9375 16.2656,212.8125 Q16.2656,209.6875 17.5781,208.0313 Q18.9063,206.375 21.4063,206.375 Q22.1094,206.375 22.75,206.5313 Q23.4063,206.6875 23.9688,206.9844 L23.9688,209.7031 Q23.3438,209.125 22.75,208.8594 Q22.1563,208.5781 21.5313,208.5781 Q20.1875,208.5781 19.5,209.6563 Q18.8125,210.7188 18.8125,212.8125 Q18.8125,214.9063 19.5,215.9844 Q20.1875,217.0469 21.5313,217.0469 Q22.1563,217.0469 22.75,216.7813 Q23.3438,216.5 23.9688,215.9219 L23.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="217.1543">C</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="452" x="51" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="450" x="52" y="206.1387">std::map&lt;int,std::vector&lt;std::vector&lt;std::vector&lt;std::string&gt;&gt;&gt;&gt;,3,3,3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="499" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="499" y1="237" y2="237"/>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L24" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L24" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fci54xg5i0ub8)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gwvsh7azp3kx)" height="48" id="C_0002295779191536043659" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="116" x="803" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" 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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gwvsh7azp3kx)" height="48" id="C_0002395729448786407708" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="115" x="996.5" y="194"/>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L16" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L16" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gwvsh7azp3kx)" height="48" id="C_0003912506223772908750" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="34" x="1189" y="194"/>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L16" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L16" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gwvsh7azp3kx)" height="48" id="C_0000113858899865604792" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="46" x="1300" y="194"/>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L20" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L20" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gwvsh7azp3kx)" height="48" id="C_0011825915317057918032" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="6" y="197"/>
<ellipse cx="21" cy="213" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,218.6406 Q23.3906,218.9375 22.75,219.0781 Q22.1094,219.2344 21.4063,219.2344 Q18.9063,219.2344 17.5781,217.5938 Q16.2656,215.9375 16.2656,212.8125 Q16.2656,209.6875 17.5781,208.0313 Q18.9063,206.375 21.4063,206.375 Q22.1094,206.375 22.75,206.5313 Q23.4063,206.6875 23.9688,206.9844 L23.9688,209.7031 Q23.3438,209.125 22.75,208.8594 Q22.1563,208.5781 21.5313,208.5781 Q20.1875,208.5781 19.5,209.6563 Q18.8125,210.7188 18.8125,212.8125 Q18.8125,214.9063 19.5,215.9844 Q20.1875,217.0469 21.5313,217.0469 Q22.1563,217.0469 22.75,216.7813 Q23.3438,216.5 23.9688,215.9219 L23.9688,218.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="8" x="35" y="217.1543">C</text>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="452" x="51" y="194"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="450" x="52" y="206.1387">std::map&lt;int,std::vector&lt;std::vector&lt;std::vector&lt;std::string&gt;&gt;&gt;&gt;,3,3,3</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="499" y1="229" y2="229"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="499" y1="237" y2="237"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L24" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L24" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1gwvsh7azp3kx)" height="112.0234" id="C_0004474107085863083753" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="784.5" x2="1275.5" y1="48" y2="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="54"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="56"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L25" target="_top" title="a1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="62.2104">a1 : A&lt;int,std::string,float&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="66.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="68.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L26" target="_top" title="a2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="75.0151">a2 : A&lt;int,std::string,bool&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="79.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="81.6094"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L28" target="_top" title="b1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="87.8198">b1 : B&lt;3,2,1&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="92.4141"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="94.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L29" target="_top" title="b2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="100.6245">b2 : B&lt;1,1,1,1&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="105.2188"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="791.5" y="107.2188"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00012/t00012.cc#L33" target="_top" title="c1" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="113.4292">c1 : C&lt;std::map&lt;int,std::vector&lt;std::vector&lt;std::vector&lt;std::string&gt;&gt;&gt;&gt;,3,3,3&gt;</text>
</a>
<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(#fci54xg5i0ub8)" 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(#f1gwvsh7azp3kx)" 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;"/>
<path d="M851.85,245.14 C859.85,257.61 870.07,273.55 879.91,288.88 " fill="none" id="C_0002295779191536043659-&gt;C_0014186399120185058260" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="885.81,285.1,890.71,305.71,874.02,292.66,885.81,285.1" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1007.63,245.14 C995.06,258.14 978.84,274.92 963.44,290.85 " fill="none" id="C_0000299466181098300963-&gt;C_0001773299890023132282" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M1007.63,245.14 C995.06,258.14 978.84,274.92 963.44,290.85 " fill="none" id="C_0002395729448786407708-&gt;C_0014186399120185058260" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="968.01,296.2,949.08,305.71,957.95,286.47,968.01,296.2" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1193.38,245.14 C1200.19,258.99 1209.11,277.13 1217.38,293.96 " fill="none" id="C_0000489063277971613593-&gt;C_0002061171077567279746" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M1193.38,245.14 C1200.19,258.99 1209.11,277.13 1217.38,293.96 " fill="none" id="C_0003912506223772908750-&gt;C_0016489368620538237973" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="1223.76,291.07,1226.3,312.11,1211.2,297.25,1223.76,291.07" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1287.82,245.14 C1281.12,258.99 1272.35,277.13 1264.22,293.96 " fill="none" id="C_0000014232362483200599-&gt;C_0002061171077567279746" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M1287.82,245.14 C1281.12,258.99 1272.35,277.13 1264.22,293.96 " fill="none" id="C_0000113858899865604792-&gt;C_0016489368620538237973" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="1270.45,297.14,1255.45,312.11,1257.85,291.05,1270.45,297.14" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M253,245.14 C253,258.47 253,275.77 253,292.05 " fill="none" id="C_0001478239414632239754-&gt;C_0000627809578407650629" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M253,245.14 C253,258.47 253,275.77 253,292.05 " fill="none" id="C_0011825915317057918032-&gt;C_0005022476627261205034" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="260,292.11,253,312.11,246,292.11,260,292.11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M950.89,128.54 C920.8,152.7 888.38,178.73 865.86,196.83 " fill="none" id="C_0000559263385732885469&lt;-C_0000286972398942005457" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M950.89,128.54 C920.8,152.7 888.38,178.73 865.86,196.83 " fill="none" id="C_0004474107085863083753&lt;-C_0002295779191536043659" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="961.41,120.08,954.2275,120.722,952.0576,127.5988,959.2401,126.9569,961.41,120.08" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="925" y="156.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="935" y="163.0669">a1</text>
<path d="M1030,133.26 C1030,155.95 1030,179.72 1030,196.62 " fill="none" id="C_0000559263385732885469&lt;-C_0000299466181098300963" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1030,133.26 C1030,155.95 1030,179.72 1030,196.62 " fill="none" id="C_0004474107085863083753&lt;-C_0002395729448786407708" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="1030,120.08,1026,126.08,1030,132.08,1034,126.08,1030,120.08" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1033" y="156.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="1043" y="163.0669">a2</text>
<path d="M1093.21,129.46 C1116.56,153.27 1141.57,178.77 1159.08,196.62 " fill="none" id="C_0000559263385732885469&lt;-C_0000489063277971613593" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1093.21,129.46 C1116.56,153.27 1141.57,178.77 1159.08,196.62 " fill="none" id="C_0004474107085863083753&lt;-C_0003912506223772908750" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="1084.02,120.08,1085.3627,127.165,1092.4191,128.6506,1091.0764,121.5656,1084.02,120.08" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1132" y="156.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="1142" y="163.0669">b1</text>
<path d="M1136.98,126.64 C1179.82,151.33 1226.56,178.26 1258.78,196.83 " fill="none" id="C_0000559263385732885469&lt;-C_0000014232362483200599" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1136.98,126.64 C1179.82,151.33 1226.56,178.26 1258.78,196.83 " fill="none" id="C_0004474107085863083753&lt;-C_0000113858899865604792" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="1125.6,120.08,1128.8056,126.5394,1136.001,126.0649,1132.7955,119.6054,1125.6,120.08" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="1207" y="156.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="1217" y="163.0669">b2</text>
<path d="M770.25,116.82 C634.09,143.98 474.14,175.89 368.56,196.95 " fill="none" id="C_0000559263385732885469&lt;-C_0001478239414632239754" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M770.25,116.82 C634.09,143.98 474.14,175.89 368.56,196.95 " fill="none" id="C_0004474107085863083753&lt;-C_0011825915317057918032" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="783.35,114.2,776.6838,111.4501,771.5815,116.5458,778.2477,119.2957,783.35,114.2" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="598" y="156.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="15" x="608" y="163.0669">c1</text>

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

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

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="518px" preserveAspectRatio="none" style="width:1138px;height:518px;" version="1.1" viewBox="0 0 1138 518" width="1138px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1k2qess7c9etc" width="300%" x="-1" y="-1">
<filter height="300%" id="f19oolkrz16ay1" 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,233 +9,291 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L7" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L7" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k2qess7c9etc)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L7" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L7" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="60.8047" id="C_0007622165842529918021" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="246" y="437.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="247" y="449.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="162" x2="251" y1="472.5" y2="472.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="162" x2="251" y1="480.5" y2="480.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="486.5"/>
<ellipse cx="172" cy="491.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L8" target="_top" title="f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="494.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(#f1k2qess7c9etc)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="318.5" y="309"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="319.5" y="321.1387">int</text>
<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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k2qess7c9etc)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L7" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L7" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="48" id="C_0018433723755227114832" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="318.5" y="309"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="319.5" y="321.1387">int</text>
<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>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L14" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L14" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="60.8047" id="C_0004159963889899419835" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="370" x2="427" y1="345.5" y2="345.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="351.5"/>
<ellipse cx="380" cy="356.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L15" target="_top" title="a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="359.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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L18" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L18" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k2qess7c9etc)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L18" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L18" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="60.8047" id="C_0009419901228781203525" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="464" x2="521" y1="345.5" y2="345.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="351.5"/>
<ellipse cx="474" cy="356.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L19" target="_top" title="b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="359.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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L22" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L22" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k2qess7c9etc)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L22" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L22" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="60.8047" id="C_0008225966544585026866" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="558.5" x2="614.5" y1="345.5" y2="345.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="351.5"/>
<ellipse cx="568.5" cy="356.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L23" target="_top" title="c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="359.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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k2qess7c9etc)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L28" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L28" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="73.6094" id="C_0003274990964975455007" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L29" xlink:show="new" xlink:title="d" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L30" target="_top" title="print" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L30" xlink:show="new" xlink:title="print" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="12" y="337"/>
<ellipse cx="17" cy="342" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<ellipse cx="17" cy="342" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L30" target="_top" title="print" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L30" xlink:show="new" xlink:title="print" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="95" x="26" y="345.2104">print(R * r) : void</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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L33" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L33" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k2qess7c9etc)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="357.8047"/>
<ellipse cx="17" cy="362.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L29" target="_top" title="d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L29" xlink:show="new" xlink:title="d" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="33" x="26" y="366.0151">d : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L33" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L33" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="60.8047" id="C_0006912447950043513847" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="9" x="841.5" y="437.5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="7" x="842.5" y="449.6387">T</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="796.5" x2="846.5" y1="472.5" y2="472.5"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="796.5" x2="846.5" y1="480.5" y2="480.5"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="486.5"/>
<ellipse cx="806.5" cy="491.5" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L34" target="_top" title="e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="494.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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L37" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L37" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k2qess7c9etc)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L37" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L37" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="73.6094" id="C_0001647416153016220941" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="52" x="1075.5" y="431"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="50" x="1076.5" y="443.1387">T,Args...</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="951.5" x2="1123.5" y1="466" y2="466"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="951.5" x2="1123.5" y1="474" y2="474"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="480"/>
<ellipse cx="961.5" cy="485" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="488.2104">args : std::tuple&lt;Args...&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="492.8047"/>
<ellipse cx="961.5" cy="497.8047" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L39" target="_top" title="args" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L38" target="_top" title="g" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="501.0151">g : T</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(#f1k2qess7c9etc)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="836.5" y="309"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="837.5" y="321.1387">int</text>
<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(#f1k2qess7c9etc)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="116" x="1004" y="309"/>
<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(#f1k2qess7c9etc)" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="64" x="695.5" y="309"/>
<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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L43" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L43" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1k2qess7c9etc)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L33" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L33" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="48" id="C_0015819890550396525783" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="18" x="836.5" y="309"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="837.5" y="321.1387">int</text>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L37" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L37" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="48" id="C_0012213866196910576114" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="116" x="1004" y="309"/>
<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"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L33" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L33" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="48" id="C_0004252185767324461489" 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>
<rect fill="#FFFFFF" height="15.9688" style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" width="64" x="695.5" y="309"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="62" x="696.5" y="321.1387">std::string</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="755.5" y1="344" y2="344"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="651.5" x2="755.5" y1="352" y2="352"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L43" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L43" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f19oolkrz16ay1)" height="214.4609" id="C_0017589493410844590756" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L60" xlink:show="new" xlink:title="gintstring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L45" target="_top" title="get_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L45" xlink:show="new" xlink:title="get_a" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="46"/>
<ellipse cx="382.5" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<ellipse cx="382.5" cy="51" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L45" target="_top" title="get_a" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L45" xlink:show="new" xlink:title="get_a" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="391.5" y="54.2104">get_a(A * a) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L63" xlink:show="new" xlink:title="estring" xlink:type="simple">
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L46" target="_top" title="get_b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L46" xlink:show="new" xlink:title="get_b" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="58.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="379.5" y="60.8047"/>
<ellipse cx="382.5" cy="63.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L46" target="_top" title="get_b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L46" xlink:show="new" xlink:title="get_b" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="391.5" y="67.0151">get_b(B &amp; b) : int</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="372.5" x2="612.5" y1="73.6094" y2="73.6094"/>
<ellipse cx="382.5" cy="84.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="391.5" y="87.8198">get_a(A * a) : int</text>
<ellipse cx="382.5" cy="97.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="391.5" y="100.6245">get_b(B &amp; b) : int</text>
<ellipse cx="382.5" cy="110.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="391.5" y="113.4292">get_const_b(const B &amp; b) : int</text>
<ellipse cx="382.5" cy="123.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="391.5" y="126.2339">get_c(C c) : int</text>
<ellipse cx="382.5" cy="135.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="391.5" y="139.0386">get_d(D &amp;&amp; d) : int</text>
<ellipse cx="382.5" cy="148.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="391.5" y="151.8433">get_d2(D &amp;&amp; d) : int</text>
<ellipse cx="382.5" cy="161.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="184" x="391.5" y="164.6479">get_int_e(const E&lt;int&gt; &amp; e) : int</text>
<ellipse cx="382.5" cy="174.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="156" x="391.5" y="177.4526">get_int_e2(E&lt;int&gt; &amp; e) : int</text>
<ellipse cx="382.5" cy="187.0469" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="216" x="391.5" y="190.2573">get_int_f(const ABCD::F&lt;int&gt; &amp; f) : int</text>
<ellipse cx="382.5" cy="199.8516" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="391.5" y="203.062">get_e&lt;T&gt;(E&lt;T&gt; e) : T</text>
<ellipse cx="382.5" cy="212.6563" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="391.5" y="215.8667">get_f&lt;T&gt;(const F&lt;T&gt; &amp; f) : T</text>
<path d="M270.09,360.17 C260.11,377.41 246.14,401.53 233.84,422.78 " fill="none" id="C_0002304215469403389354-&gt;C_0000952770730316239752" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L48" target="_top" title="get_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L48" xlink:show="new" xlink:title="get_c" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="71.6094"/>
<ellipse cx="382.5" cy="76.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L48" target="_top" title="get_c" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L48" xlink:show="new" xlink:title="get_c" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="391.5" y="79.8198">get_c(C c) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L47" target="_top" title="get_const_b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L47" xlink:show="new" xlink:title="get_const_b" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="84.4141"/>
<ellipse cx="382.5" cy="89.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L47" target="_top" title="get_const_b" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L47" xlink:show="new" xlink:title="get_const_b" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="391.5" y="92.6245">get_const_b(const B &amp; b) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L49" target="_top" title="get_d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L49" xlink:show="new" xlink:title="get_d" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="97.2188"/>
<ellipse cx="382.5" cy="102.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L49" target="_top" title="get_d" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L49" xlink:show="new" xlink:title="get_d" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="391.5" y="105.4292">get_d(D &amp;&amp; d) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L51" target="_top" title="get_d2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L51" xlink:show="new" xlink:title="get_d2" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="110.0234"/>
<ellipse cx="382.5" cy="115.0234" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L51" target="_top" title="get_d2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L51" xlink:show="new" xlink:title="get_d2" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="391.5" y="118.2339">get_d2(D &amp;&amp; d) : int</text>
</a>
<ellipse cx="382.5" cy="127.8281" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="391.5" y="131.0386">get_e&lt;T&gt;(E&lt;T&gt; e) : T</text>
<ellipse cx="382.5" cy="140.6328" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="391.5" y="143.8433">get_f&lt;T&gt;(const F&lt;T&gt; &amp; f) : T</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L54" target="_top" title="get_int_e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L54" xlink:show="new" xlink:title="get_int_e" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="148.4375"/>
<ellipse cx="382.5" cy="153.4375" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L54" target="_top" title="get_int_e" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L54" xlink:show="new" xlink:title="get_int_e" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="184" x="391.5" y="156.6479">get_int_e(const E&lt;int&gt; &amp; e) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L55" target="_top" title="get_int_e2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L55" xlink:show="new" xlink:title="get_int_e2" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="161.2422"/>
<ellipse cx="382.5" cy="166.2422" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L55" target="_top" title="get_int_e2" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L55" xlink:show="new" xlink:title="get_int_e2" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="156" x="391.5" y="169.4526">get_int_e2(E&lt;int&gt; &amp; e) : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L58" target="_top" title="get_int_f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L58" xlink:show="new" xlink:title="get_int_f" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="174.0469"/>
<ellipse cx="382.5" cy="179.0469" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L58" target="_top" title="get_int_f" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L58" xlink:show="new" xlink:title="get_int_f" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="216" x="391.5" y="182.2573">get_int_f(const ABCD::F&lt;int&gt; &amp; f) : int</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="372.5" x2="612.5" y1="188.8516" y2="188.8516"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L63" xlink:show="new" xlink:title="estring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="194.8516"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="379.5" y="196.8516"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L63" target="_top" title="estring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L63" xlink:show="new" xlink:title="estring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="391.5" y="203.062">estring : E&lt;std::string&gt;</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L60" xlink:show="new" xlink:title="gintstring" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="377.5" y="207.6563"/>
<ellipse cx="382.5" cy="212.6563" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L60" target="_top" title="gintstring" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00013/t00013.cc#L60" xlink:show="new" xlink:title="gintstring" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="391.5" y="215.8667">gintstring : G&lt;int,float,std::string&gt;</text>
</a>
<path d="M270.09,360.17 C260.11,377.41 246.14,401.53 233.84,422.78 " fill="none" id="C_0018433723755227114832-&gt;C_0007622165842529918021" 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;"/>
<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_0003274990964975455007-&gt;C_0017589493410844590756" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="371.17,158.19,361.3418,157.5521,366.479,159.9205,364.1106,165.0577,371.17,158.19" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M371.44,147.45 C299.82,170.53 209.55,205.88 137.5,252 C118.91,263.9 100.75,280.02 86.98,294.88 " fill="none" id="C_0002198686676355573844-&gt;C_0000409373870621931875" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M371.44,147.45 C299.82,170.53 209.55,205.88 137.5,252 C118.91,263.9 100.75,280.02 86.98,294.88 " fill="none" id="C_0017589493410844590756-&gt;C_0003274990964975455007" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="83.58,298.63,92.5908,294.6543,86.9405,294.9277,86.6671,289.2775,83.58,298.63" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M821.5,360.17 C821.5,376.63 821.5,399.36 821.5,419.88 " fill="none" id="C_0001977486318799565722-&gt;C_0000864055993755439230" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M821.5,360.17 C821.5,376.63 821.5,399.36 821.5,419.88 " fill="none" id="C_0015819890550396525783-&gt;C_0006912447950043513847" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="828.5,420.1,821.5,440.1,814.5,420.1,828.5,420.1" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M1037.5,360.17 C1037.5,375.01 1037.5,394.95 1037.5,413.77 " fill="none" id="C_0001526733274613822014-&gt;C_0000205927019127027617" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M1037.5,360.17 C1037.5,375.01 1037.5,394.95 1037.5,413.77 " fill="none" id="C_0012213866196910576114-&gt;C_0001647416153016220941" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="1044.5,413.83,1037.5,433.83,1030.5,413.83,1044.5,413.83" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M724.05,360.17 C739.99,378.13 762.57,403.57 781.97,425.45 " fill="none" id="C_0000531523220915557686-&gt;C_0000864055993755439230" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M724.05,360.17 C739.99,378.13 762.57,403.57 781.97,425.45 " fill="none" id="C_0004252185767324461489-&gt;C_0006912447950043513847" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="787.37,420.98,795.4,440.59,776.89,430.27,787.37,420.98" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M446.88,222.29 C434.7,250.66 422.4,279.32 413.25,300.64 " fill="none" id="C_0002198686676355573844-&gt;C_0000519995486237427479" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M446.88,222.29 C434.7,250.66 422.4,279.32 413.25,300.64 " fill="none" id="C_0017589493410844590756-&gt;C_0004159963889899419835" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="411.23,305.34,418.4519,298.6434,413.1996,300.7443,411.0987,295.492,411.23,305.34" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M492.5,222.29 C492.5,250.42 492.5,278.84 492.5,300.1 " fill="none" id="C_0002198686676355573844-&gt;C_0001177487653597650440" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M492.5,222.29 C492.5,250.42 492.5,278.84 492.5,300.1 " fill="none" id="C_0017589493410844590756-&gt;C_0009419901228781203525" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="492.5,305.34,496.5,296.34,492.5,300.34,488.5,296.34,492.5,305.34" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M538.12,222.29 C550.3,250.66 562.6,279.32 571.75,300.64 " fill="none" id="C_0002198686676355573844-&gt;C_0001028245818073128358" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M538.12,222.29 C550.3,250.66 562.6,279.32 571.75,300.64 " fill="none" id="C_0017589493410844590756-&gt;C_0008225966544585026866" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="573.77,305.34,573.9013,295.492,571.8004,300.7443,566.5481,298.6434,573.77,305.34" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M613.67,192.38 C663.67,224.55 721.88,262.85 773.5,299 C777.94,302.11 782.56,305.45 787.11,308.78 " fill="none" id="C_0002198686676355573844-&gt;C_0001977486318799565722" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M613.67,192.38 C663.67,224.55 721.88,262.85 773.5,299 C777.94,302.11 782.56,305.45 787.11,308.78 " fill="none" id="C_0017589493410844590756-&gt;C_0015819890550396525783" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="791.25,311.84,786.396,303.2704,787.2312,308.8652,781.6363,309.7005,791.25,311.84" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M391.06,222.29 C360.58,254.23 329.76,286.53 308.97,308.32 " fill="none" id="C_0002198686676355573844-&gt;C_0002304215469403389354" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="305.46,311.99,314.5716,308.2511,308.9161,308.3768,308.7904,302.7213,305.46,311.99" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M613.6,139.54 C701.02,163.54 813.06,210.37 868.5,299 C895.25,341.77 868.51,399.83 845.79,436.1 " fill="none" id="C_0002198686676355573844-&gt;C_0000864055993755439230" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M613.6,139.54 C701.02,163.54 813.06,210.37 868.5,299 C895.25,341.77 868.51,399.83 845.79,436.1 " fill="none" id="C_0017589493410844590756-&gt;C_0006912447950043513847" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="843.04,440.41,851.2501,434.9699,845.7272,436.1935,844.5036,430.6705,843.04,440.41" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M371.19,164.68 C313.65,194.46 250.07,238.59 215.5,299 C191.5,340.93 194.35,398.53 199.62,435.01 " fill="none" id="C_0002198686676355573844-&gt;C_0000952770730316239752" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<path d="M391.06,222.29 C360.58,254.23 329.76,286.53 308.97,308.32 " fill="none" id="C_0017589493410844590756-&gt;C_0018433723755227114832" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="305.46,311.99,314.5716,308.2511,308.9161,308.3768,308.7904,302.7213,305.46,311.99" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M371.19,164.68 C313.65,194.46 250.07,238.59 215.5,299 C191.5,340.93 194.35,398.53 199.62,435.01 " fill="none" id="C_0017589493410844590756-&gt;C_0007622165842529918021" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="200.42,440.24,203.0112,430.7381,199.6629,435.2976,195.1034,431.9494,200.42,440.24" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M626.37,144.32 C715.69,166.35 833.99,201.71 930.5,252 C961.36,268.08 992.3,293.31 1012.91,311.73 " fill="none" id="C_0002198686676355573844&lt;-C_0001526733274613822014" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M626.37,144.32 C715.69,166.35 833.99,201.71 930.5,252 C961.36,268.08 992.3,293.31 1012.91,311.73 " fill="none" id="C_0017589493410844590756&lt;-C_0012213866196910576114" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="613.69,141.23,618.5761,146.5334,625.3508,144.0629,620.4647,138.7595,613.69,141.23" style="stroke: #A80036; stroke-width: 1.0;"/>
<ellipse cx="962.5" cy="261.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="60" x="969.5" y="265.0669">gintstring</text>
<path d="M604.06,231.79 C633.53,262.38 662.36,292.3 681.33,311.99 " fill="none" id="C_0002198686676355573844&lt;-C_0000531523220915557686" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M604.06,231.79 C633.53,262.38 662.36,292.3 681.33,311.99 " fill="none" id="C_0017589493410844590756&lt;-C_0004252185767324461489" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="594.91,222.29,596.1866,229.3872,603.2289,230.9385,601.9523,223.8413,594.91,222.29" style="stroke: #A80036; stroke-width: 1.0;"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="638.5" y="258.0664"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="44" x="648.5" y="265.0669">estring</text>

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 51 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 40 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 73 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 64 KiB

View File

@@ -1,56 +1,212 @@
# t00015 - Namespace fun
## Config
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
t00015_class:
type: class
glob:
- ../../tests/t00015/t00015.cc
using_namespace:
- clanguml::t00015
- t00015.cc
using_namespace: clanguml::t00015
include:
namespaces:
- clanguml::t00015
```
## Source code
File t00015.cc
File `tests/t00015/t00015.cc`
```cpp
namespace clanguml {
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
## Generated PlantUML diagrams
![t00015_class](./t00015_class.svg "Namespace fun")
## Generated Mermaid diagrams
![t00015_class](./t00015_class_mermaid.svg "Namespace fun")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "ns1::A",
"id": "11285559110441195627",
"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": {
"column": 7,
"file": "t00015.cc",
"line": 6,
"translation_unit": "t00015.cc"
},
"template_parameters": [],
"type": "class"
},
{
"bases": [],
"display_name": "ns1::ns2_v0_9_0::A",
"id": "3884421184392710906",
"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": {
"column": 22,
"file": "t00015.cc",
"line": 10,
"translation_unit": "t00015.cc"
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "11285559110441195627",
"is_virtual": false,
"name": "clanguml::t00015::ns1::A"
}
],
"display_name": "ns1::Anon",
"id": "8485849058996602634",
"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": {
"column": 7,
"file": "t00015.cc",
"line": 14,
"translation_unit": "t00015.cc"
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "11285559110441195627",
"is_virtual": false,
"name": "clanguml::t00015::ns1::A"
}
],
"display_name": "ns3::ns1::ns2::Anon",
"id": "14380170306833269036",
"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": {
"column": 7,
"file": "t00015.cc",
"line": 21,
"translation_unit": "t00015.cc"
},
"template_parameters": [],
"type": "class"
},
{
"bases": [
{
"access": "public",
"id": "14380170306833269036",
"is_virtual": false,
"name": "clanguml::t00015::ns3::ns1::ns2::Anon"
}
],
"display_name": "ns3::B",
"id": "6967059102554848740",
"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": {
"column": 7,
"file": "t00015.cc",
"line": 24,
"translation_unit": "t00015.cc"
},
"template_parameters": [],
"type": "class"
}
],
"name": "t00015_class",
"package_type": "namespace",
"relationships": [
{
"access": "public",
"destination": "11285559110441195627",
"source": "8485849058996602634",
"type": "extension"
},
{
"access": "public",
"destination": "11285559110441195627",
"source": "14380170306833269036",
"type": "extension"
},
{
"access": "public",
"destination": "14380170306833269036",
"source": "6967059102554848740",
"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="f1f1mv08yfr7ev" width="300%" x="-1" y="-1">
<filter height="300%" id="f1wpla007patkf" 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,51 +9,51 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00015/t00015.cc#L6" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00015/t00015.cc#L6" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f1mv08yfr7ev)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00015/t00015.cc#L6" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00015/t00015.cc#L6" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1wpla007patkf)" height="48" id="C_0011285559110441195627" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00015/t00015.cc#L11" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00015/t00015.cc#L11" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f1mv08yfr7ev)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00015/t00015.cc#L10" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00015/t00015.cc#L10" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1wpla007patkf)" height="48" id="C_0003884421184392710906" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00015/t00015.cc#L16" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00015/t00015.cc#L16" xlink:show="new" xlink:title="Anon" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f1mv08yfr7ev)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00015/t00015.cc#L14" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00015/t00015.cc#L14" xlink:show="new" xlink:title="Anon" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1wpla007patkf)" height="48" id="C_0008485849058996602634" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00015/t00015.cc#L24" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00015/t00015.cc#L24" xlink:show="new" xlink:title="Anon" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f1mv08yfr7ev)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00015/t00015.cc#L21" target="_top" title="Anon" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00015/t00015.cc#L21" xlink:show="new" xlink:title="Anon" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1wpla007patkf)" height="48" id="C_0014380170306833269036" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00015/t00015.cc#L28" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00015/t00015.cc#L28" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1f1mv08yfr7ev)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00015/t00015.cc#L24" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00015/t00015.cc#L24" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1wpla007patkf)" height="48" id="C_0006967059102554848740" 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>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="180" x2="249" y1="256" y2="256"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="180" x2="249" y1="264" y2="264"/>
</a>
<path d="M103.93,72.18 C92.9,86.8 80.72,102.93 71.1,115.68 " fill="none" id="C_0001410694888805149453&lt;-C_0001060731132374575329" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M103.93,72.18 C92.9,86.8 80.72,102.93 71.1,115.68 " fill="none" id="C_0011285559110441195627&lt;-C_0008485849058996602634" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="98.51,67.75,116.14,56,109.68,76.18,98.51,67.75" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M163.44,72.18 C174.61,86.8 186.94,102.93 196.68,115.68 " fill="none" id="C_0001410694888805149453&lt;-C_0001797521288354158629" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M163.44,72.18 C174.61,86.8 186.94,102.93 196.68,115.68 " fill="none" id="C_0011285559110441195627&lt;-C_0014380170306833269036" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="157.66,76.14,151.08,56,168.78,67.64,157.66,76.14" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M214.5,184.02 C214.5,197.58 214.5,212.04 214.5,223.68 " fill="none" id="C_0001797521288354158629&lt;-C_0000870882387819356092" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M214.5,184.02 C214.5,197.58 214.5,212.04 214.5,223.68 " fill="none" id="C_0014380170306833269036&lt;-C_0006967059102554848740" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="none" points="207.5,184,214.5,164,221.5,184,207.5,184" style="stroke: #A80036; stroke-width: 1.0;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

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

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,22 +1,22 @@
# t00016 - Unnamed enums and empty templates
## Config
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
t00016_class:
type: class
glob:
- ../../tests/t00016/t00016.cc
using_namespace:
- clanguml::t00016
- t00016.cc
using_namespace: clanguml::t00016
plantuml:
style:
instantiation: up
include:
namespaces:
- clanguml::t00016
```
## Source code
File t00016.cc
File `tests/t00016/t00016.cc`
```cpp
namespace clanguml {
namespace t00016 {
@@ -48,5 +48,266 @@ template <> struct is_numeric<bool> {
} // namespace clanguml
```
## Generated UML diagrams
## Generated PlantUML diagrams
![t00016_class](./t00016_class.svg "Unnamed enums and empty templates")
## Generated Mermaid diagrams
![t00016_class](./t00016_class_mermaid.svg "Unnamed enums and empty templates")
## Generated JSON models
```json
{
"diagram_type": "class",
"elements": [
{
"bases": [],
"display_name": "is_numeric<typename>",
"id": "7462850660467683116",
"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": {
"column": 28,
"file": "t00016.cc",
"line": 4,
"translation_unit": "t00016.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "template_type",
"name": "typename",
"template_parameters": []
}
],
"type": "class"
},
{
"bases": [],
"display_name": "is_numeric<float>",
"id": "764946365186193592",
"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": {
"column": 20,
"file": "t00016.cc",
"line": 8,
"translation_unit": "t00016.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "float"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "is_numeric<char>",
"id": "7833035054326093824",
"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": {
"column": 20,
"file": "t00016.cc",
"line": 12,
"translation_unit": "t00016.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "char"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "is_numeric<unsigned int>",
"id": "16726301520218734694",
"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": {
"column": 20,
"file": "t00016.cc",
"line": 16,
"translation_unit": "t00016.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "unsigned int"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "is_numeric<int>",
"id": "4004824601899568602",
"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": {
"column": 20,
"file": "t00016.cc",
"line": 20,
"translation_unit": "t00016.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "int"
}
],
"type": "class"
},
{
"bases": [],
"display_name": "is_numeric<bool>",
"id": "16890534700107359361",
"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": {
"column": 20,
"file": "t00016.cc",
"line": 24,
"translation_unit": "t00016.cc"
},
"template_parameters": [
{
"is_variadic": false,
"kind": "argument",
"template_parameters": [],
"type": "bool"
}
],
"type": "class"
}
],
"name": "t00016_class",
"package_type": "namespace",
"relationships": [
{
"access": "public",
"destination": "7462850660467683116",
"source": "764946365186193592",
"type": "instantiation"
},
{
"access": "public",
"destination": "7462850660467683116",
"source": "7833035054326093824",
"type": "instantiation"
},
{
"access": "public",
"destination": "7462850660467683116",
"source": "16726301520218734694",
"type": "instantiation"
},
{
"access": "public",
"destination": "7462850660467683116",
"source": "4004824601899568602",
"type": "instantiation"
},
{
"access": "public",
"destination": "7462850660467683116",
"source": "16890534700107359361",
"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:980px;height:200px;" version="1.1" viewBox="0 0 980 200" width="980px" zoomAndPan="magnify">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="200px" preserveAspectRatio="none" style="width:847px;height:200px;" version="1.1" viewBox="0 0 847 200" width="847px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="f1sr6jd3l7m7yq" width="300%" x="-1" y="-1">
<filter height="300%" id="f1jo0t6qcl2jxm" 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,95 +9,87 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L4" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L4" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1sr6jd3l7m7yq)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L4" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L4" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1jo0t6qcl2jxm)" height="60.8047" id="C_0007462850660467683116" style="stroke: #A80036; stroke-width: 1.5;" width="165" x="343.5" y="8"/>
<ellipse cx="358.5" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M361.4688,29.6406 Q360.8906,29.9375 360.25,30.0781 Q359.6094,30.2344 358.9063,30.2344 Q356.4063,30.2344 355.0781,28.5938 Q353.7656,26.9375 353.7656,23.8125 Q353.7656,20.6875 355.0781,19.0313 Q356.4063,17.375 358.9063,17.375 Q359.6094,17.375 360.25,17.5313 Q360.9063,17.6875 361.4688,17.9844 L361.4688,20.7031 Q360.8438,20.125 360.25,19.8594 Q359.6563,19.5781 359.0313,19.5781 Q357.6875,19.5781 357,20.6563 Q356.3125,21.7188 356.3125,23.8125 Q356.3125,25.9063 357,26.9844 Q357.6875,28.0469 359.0313,28.0469 Q359.6563,28.0469 360.25,27.7813 Q360.8438,27.5 361.4688,26.9219 L361.4688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="372.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="65" x="446.5" y="5"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="63" x="447.5" y="17.1387">typename</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="344.5" x2="507.5" y1="40" y2="40"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="344.5" x2="507.5" y1="48" y2="48"/>
<ellipse cx="354.5" cy="59" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="363.5" y="62.2104">value : enum</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L8" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L8" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1sr6jd3l7m7yq)" height="60.8047" id="C_0000722777951198284620" style="stroke: #A80036; stroke-width: 1.5;" width="100" x="869" y="8"/>
<ellipse cx="884.9" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M887.8688,29.6406 Q887.2906,29.9375 886.65,30.0781 Q886.0094,30.2344 885.3063,30.2344 Q882.8063,30.2344 881.4781,28.5938 Q880.1656,26.9375 880.1656,23.8125 Q880.1656,20.6875 881.4781,19.0313 Q882.8063,17.375 885.3063,17.375 Q886.0094,17.375 886.65,17.5313 Q887.3063,17.6875 887.8688,17.9844 L887.8688,20.7031 Q887.2438,20.125 886.65,19.8594 Q886.0563,19.5781 885.4313,19.5781 Q884.0875,19.5781 883.4,20.6563 Q882.7125,21.7188 882.7125,23.8125 Q882.7125,25.9063 883.4,26.9844 Q884.0875,28.0469 885.4313,28.0469 Q886.0563,28.0469 886.65,27.7813 Q887.2438,27.5 887.8688,26.9219 L887.8688,29.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="899.1" y="28.1543">is_numeric</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="968" y1="40" y2="40"/>
<ellipse cx="880" 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="889" y="54.2104">value : enum</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="870" x2="968" y1="60.8047" y2="60.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L8" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L8" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1jo0t6qcl2jxm)" height="60.8047" id="C_0000764946365186193592" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="6" y="129"/>
<ellipse cx="21" cy="145" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M23.9688,150.6406 Q23.3906,150.9375 22.75,151.0781 Q22.1094,151.2344 21.4063,151.2344 Q18.9063,151.2344 17.5781,149.5938 Q16.2656,147.9375 16.2656,144.8125 Q16.2656,141.6875 17.5781,140.0313 Q18.9063,138.375 21.4063,138.375 Q22.1094,138.375 22.75,138.5313 Q23.4063,138.6875 23.9688,138.9844 L23.9688,141.7031 Q23.3438,141.125 22.75,140.8594 Q22.1563,140.5781 21.5313,140.5781 Q20.1875,140.5781 19.5,141.6563 Q18.8125,142.7188 18.8125,144.8125 Q18.8125,146.9063 19.5,147.9844 Q20.1875,149.0469 21.5313,149.0469 Q22.1563,149.0469 22.75,148.7813 Q23.3438,148.5 23.9688,147.9219 L23.9688,150.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="35" y="149.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="126"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="110" y="138.1387">float</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="135" y1="161" y2="161"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="135" y1="169" y2="169"/>
<ellipse cx="17" cy="180" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="26" y="183.2104">value : enum</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L8" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L8" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1sr6jd3l7m7yq)" height="60.8047" id="C_0000095618295648274199" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="6" y="8"/>
<ellipse cx="21" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L12" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L12" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1jo0t6qcl2jxm)" height="60.8047" id="C_0007833035054326093824" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="171" y="129"/>
<ellipse cx="186" cy="145" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M188.9688,150.6406 Q188.3906,150.9375 187.75,151.0781 Q187.1094,151.2344 186.4063,151.2344 Q183.9063,151.2344 182.5781,149.5938 Q181.2656,147.9375 181.2656,144.8125 Q181.2656,141.6875 182.5781,140.0313 Q183.9063,138.375 186.4063,138.375 Q187.1094,138.375 187.75,138.5313 Q188.4063,138.6875 188.9688,138.9844 L188.9688,141.7031 Q188.3438,141.125 187.75,140.8594 Q187.1563,140.5781 186.5313,140.5781 Q185.1875,140.5781 184.5,141.6563 Q183.8125,142.7188 183.8125,144.8125 Q183.8125,146.9063 184.5,147.9844 Q185.1875,149.0469 186.5313,149.0469 Q187.1563,149.0469 187.75,148.7813 Q188.3438,148.5 188.9688,147.9219 L188.9688,150.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="200" y="149.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="126"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="28" x="275" y="138.1387">char</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="300" y1="161" y2="161"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="300" y1="169" y2="169"/>
<ellipse cx="182" cy="180" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="191" y="183.2104">value : enum</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L12" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L12" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1sr6jd3l7m7yq)" height="60.8047" id="C_0000979129381790761728" style="stroke: #A80036; stroke-width: 1.5;" width="130" x="171" y="8"/>
<ellipse cx="186" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L16" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L16" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1jo0t6qcl2jxm)" height="60.8047" id="C_0016726301520218734694" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="336.5" y="129"/>
<ellipse cx="351.5" cy="145" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M354.4688,150.6406 Q353.8906,150.9375 353.25,151.0781 Q352.6094,151.2344 351.9063,151.2344 Q349.4063,151.2344 348.0781,149.5938 Q346.7656,147.9375 346.7656,144.8125 Q346.7656,141.6875 348.0781,140.0313 Q349.4063,138.375 351.9063,138.375 Q352.6094,138.375 353.25,138.5313 Q353.9063,138.6875 354.4688,138.9844 L354.4688,141.7031 Q353.8438,141.125 353.25,140.8594 Q352.6563,140.5781 352.0313,140.5781 Q350.6875,140.5781 350,141.6563 Q349.3125,142.7188 349.3125,144.8125 Q349.3125,146.9063 350,147.9844 Q350.6875,149.0469 352.0313,149.0469 Q352.6563,149.0469 353.25,148.7813 Q353.8438,148.5 354.4688,147.9219 L354.4688,150.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="365.5" y="149.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="126"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="77" x="440.5" y="138.1387">unsigned int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="337.5" x2="514.5" y1="161" y2="161"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="337.5" x2="514.5" y1="169" y2="169"/>
<ellipse cx="347.5" cy="180" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="356.5" y="183.2104">value : enum</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L16" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L16" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1sr6jd3l7m7yq)" height="60.8047" id="C_0002090787690027341836" style="stroke: #A80036; stroke-width: 1.5;" width="179" x="336.5" y="8"/>
<ellipse cx="351.5" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L20" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L20" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1jo0t6qcl2jxm)" height="60.8047" id="C_0004004824601899568602" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="551" y="129"/>
<ellipse cx="566" cy="145" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M568.9688,150.6406 Q568.3906,150.9375 567.75,151.0781 Q567.1094,151.2344 566.4063,151.2344 Q563.9063,151.2344 562.5781,149.5938 Q561.2656,147.9375 561.2656,144.8125 Q561.2656,141.6875 562.5781,140.0313 Q563.9063,138.375 566.4063,138.375 Q567.1094,138.375 567.75,138.5313 Q568.4063,138.6875 568.9688,138.9844 L568.9688,141.7031 Q568.3438,141.125 567.75,140.8594 Q567.1563,140.5781 566.5313,140.5781 Q565.1875,140.5781 564.5,141.6563 Q563.8125,142.7188 563.8125,144.8125 Q563.8125,146.9063 564.5,147.9844 Q565.1875,149.0469 566.5313,149.0469 Q567.1563,149.0469 567.75,148.7813 Q568.3438,148.5 568.9688,147.9219 L568.9688,150.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="580" y="149.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="126"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="16" x="655" y="138.1387">int</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="552" x2="668" y1="161" y2="161"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="552" x2="668" y1="169" y2="169"/>
<ellipse cx="562" cy="180" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="571" y="183.2104">value : enum</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L20" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L20" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1sr6jd3l7m7yq)" height="60.8047" id="C_0000500603075237446075" style="stroke: #A80036; stroke-width: 1.5;" width="118" x="551" y="8"/>
<ellipse cx="566" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L24" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00016/t00016.cc#L24" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1jo0t6qcl2jxm)" height="60.8047" id="C_0016890534700107359361" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="704.5" y="129"/>
<ellipse cx="719.5" cy="145" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M722.4688,150.6406 Q721.8906,150.9375 721.25,151.0781 Q720.6094,151.2344 719.9063,151.2344 Q717.4063,151.2344 716.0781,149.5938 Q714.7656,147.9375 714.7656,144.8125 Q714.7656,141.6875 716.0781,140.0313 Q717.4063,138.375 719.9063,138.375 Q720.6094,138.375 721.25,138.5313 Q721.9063,138.6875 722.4688,138.9844 L722.4688,141.7031 Q721.8438,141.125 721.25,140.8594 Q720.6563,140.5781 720.0313,140.5781 Q718.6875,140.5781 718,141.6563 Q717.3125,142.7188 717.3125,144.8125 Q717.3125,146.9063 718,147.9844 Q718.6875,149.0469 720.0313,149.0469 Q720.6563,149.0469 721.25,148.7813 Q721.8438,148.5 722.4688,147.9219 L722.4688,150.6406 Z "/>
<text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="733.5" y="149.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="126"/>
<text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="27" x="808.5" y="138.1387">bool</text>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="705.5" x2="832.5" y1="161" y2="161"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="705.5" x2="832.5" y1="169" y2="169"/>
<ellipse cx="715.5" cy="180" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="724.5" y="183.2104">value : enum</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L24" target="_top" title="is_numeric" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00016/t00016.cc#L24" xlink:show="new" xlink:title="is_numeric" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#f1sr6jd3l7m7yq)" height="60.8047" id="C_0002111316837513419920" style="stroke: #A80036; stroke-width: 1.5;" width="129" x="704.5" y="8"/>
<ellipse cx="719.5" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
<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"/>
</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="M324.27,72.09 C272.82,88.76 209.46,109.59 153,129 C147.56,130.87 141.93,132.83 136.29,134.82 " fill="none" id="C_0007462850660467683116&lt;-C_0000764946365186193592" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="322.18,65.41,343.36,65.91,326.49,78.73,322.18,65.41" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M361.42,79.95 C335.77,96.01 306.8,114.15 283.18,128.95 " fill="none" id="C_0007462850660467683116&lt;-C_0007833035054326093824" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="357.88,73.91,378.55,69.22,365.31,85.77,357.88,73.91" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M426,89.33 C426,102.73 426,116.81 426,128.74 " fill="none" id="C_0007462850660467683116&lt;-C_0016726301520218734694" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="419,89.22,426,69.22,433,89.22,419,89.22" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M488.9,80.18 C513.65,96.19 541.54,114.23 564.31,128.95 " fill="none" id="C_0007462850660467683116&lt;-C_0004004824601899568602" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="484.95,85.96,471.96,69.22,492.55,74.21,484.95,85.96" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M527.69,73.98 C576.02,90.46 634.55,110.57 687,129 C692.57,130.96 698.34,133 704.13,135.06 " fill="none" id="C_0007462850660467683116&lt;-C_0016890534700107359361" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="none" points="525.36,80.58,508.69,67.5,529.88,67.33,525.36,80.58" style="stroke: #A80036; stroke-width: 1.0;"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

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

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="256px" preserveAspectRatio="none" style="width:799px;height:256px;" version="1.1" viewBox="0 0 799 256" width="799px" zoomAndPan="magnify">
<defs>
<filter height="300%" id="fy1dyix3qkjmw" width="300%" x="-1" y="-1">
<filter height="300%" id="fq8cki69sjcxs" 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,172 +9,169 @@
<style type="text/css">a:hover { text-decoration: underline; }</style>
</defs>
<g>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L5" target="_top" title="A" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L5" xlink:show="new" xlink:title="A" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0000970656747477527100" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L8" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L8" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L7" target="_top" title="B" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L7" xlink:show="new" xlink:title="B" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0011398918699649603899" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L11" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L11" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L9" target="_top" title="C" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L9" xlink:show="new" xlink:title="C" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0017209363134757947829" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L14" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L14" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L11" target="_top" title="D" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L11" xlink:show="new" xlink:title="D" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0011024897017054135776" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L17" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L17" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L13" target="_top" title="E" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L13" xlink:show="new" xlink:title="E" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0012282407486654419914" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L20" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L20" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L15" target="_top" title="F" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L15" xlink:show="new" xlink:title="F" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0014430403722237681072" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L23" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L23" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L17" target="_top" title="G" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L17" xlink:show="new" xlink:title="G" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0009086382335141361974" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L26" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L26" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L19" target="_top" title="H" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L19" xlink:show="new" xlink:title="H" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0009948382692573698543" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L29" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L29" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L21" target="_top" title="I" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L21" xlink:show="new" xlink:title="I" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0003101865597645029270" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L32" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L32" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L23" target="_top" title="J" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L23" xlink:show="new" xlink:title="J" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0005983934629379468301" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L35" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L35" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L25" target="_top" title="K" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L25" xlink:show="new" xlink:title="K" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="48" id="C_0014268570743958667740" 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/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L38" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L38" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fy1dyix3qkjmw)" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L27" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L27" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" filter="url(#fq8cki69sjcxs)" height="112.0234" id="C_0002299967332512906736" style="stroke: #A80036; stroke-width: 1.5;" width="379" x="213.5" 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="214.5" x2="591.5" y1="40" y2="40"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L49" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L49" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L28" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L28" xlink:show="new" xlink:title="R" xlink:type="simple">
<rect fill="#FEFECE" height="10" style="stroke: none; stroke-width: 1.0;" width="20" x="219.5" y="46"/>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="221.5" y="48"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L49" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L49" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L28" target="_top" title="R" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L28" xlink:show="new" xlink:title="R" xlink:type="simple">
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="353" x="233.5" y="54.2104">R(int &amp; some_int, C &amp; cc, const E &amp; ee, F &amp;&amp; ff, I *&amp; ii) : void</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L50" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L50" 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"/>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="214.5" x2="591.5" y1="60.8047" y2="60.8047"/>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="219.5" y="66.8047"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="221.5" y="68.8047"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L50" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L50" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L38" target="_top" title="some_int" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="233.5" y="75.0151">some_int : int</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L51" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L51" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="219.5" y="79.6094"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="221.5" y="81.6094"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L51" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L51" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L39" target="_top" title="some_int_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="233.5" y="87.8198">some_int_pointer : int *</text>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L52" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L52" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="219.5" y="92.4141"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="221.5" y="94.4141"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L52" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/65a55fa7ccadbf36227d54392e72e9702dde1767/tests/t00017/t00017.cc#L52" 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 href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L40" target="_top" title="some_int_pointer_pointer" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="233.5" y="100.6245">some_int_pointer_pointer : int **</text>
</a>
<line style="stroke: #A80036; stroke-width: 1.5;" x1="197.5" x2="574.5" y1="99.2188" y2="99.2188"/>
<rect fill="#F24D5C" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="204.5" y="107.2188"/>
<text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="353" x="216.5" y="113.4292">R(int &amp; some_int, C &amp; cc, const E &amp; ee, F &amp;&amp; ff, I *&amp; ii) : void</text>
<path d="M196.38,115.54 C183.12,125.1 171.33,136.48 162,150 C153.6,162.17 156.07,178.21 161.11,191.86 " fill="none" id="C_0000287495916564113342-&gt;C_0002151170391844743478" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="163.06,196.77,163.4575,186.9292,161.2154,192.1227,156.0218,189.8806,163.06,196.77" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M297.03,120.16 C282.72,129.76 268.27,139.91 255,150 C235.64,164.73 215.11,183 199.84,197.19 " fill="none" id="C_0000287495916564113342-&gt;C_0002151170391844743478-1" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="196.07,200.7,205.385,197.5015,199.7319,197.2956,199.9379,191.6424,196.07,200.7" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="12" x="256" y="163.0669">-c</text>
<path d="M328.46,120.3 C321.75,129.55 315.91,139.56 312,150 C306.98,163.4 309.68,178.85 314.18,191.83 " fill="none" id="C_0000287495916564113342-&gt;C_0001535300935831802489" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="316.06,196.85,316.6452,187.0185,314.3044,192.1684,309.1546,189.8275,316.06,196.85" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M365.39,120.08 C356.32,144.31 346.06,171.73 338.59,191.71 " fill="none" id="C_0000287495916564113342-&gt;C_0001535300935831802489-1" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="336.75,196.62,343.6366,189.5791,338.4931,191.9337,336.1385,186.7901,336.75,196.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="355" y="163.0669">-e</text>
<path d="M392.04,120.08 C394.69,144.21 397.68,171.5 399.87,191.46 " fill="none" id="C_0000287495916564113342-&gt;C_0001803800465279710134" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="400.44,196.62,403.4128,187.2305,399.8831,191.6511,395.4625,188.1215,400.44,196.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M402.61,133.18 C403.57,138.85 404.39,144.5 405,150 C405.83,157.51 405.14,159.45 405,167 C404.82,176.76 404.44,187.52 404.07,196.79 " fill="none" id="C_0000287495916564113342&lt;-C_0001803800465279710134" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="400.15,120.03,397.3198,126.6625,402.3535,131.826,405.1837,125.1935,400.15,120.03" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="9" x="407" y="163.0669">-f</text>
<path d="M472.34,120.01 C509.26,143.62 552.81,171.57 592,197 C596.21,199.73 600.69,202.66 604.99,205.48 " fill="none" id="C_0000287495916564113342-&gt;C_0000387733199705628658" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/>
<polygon fill="#A80036" points="609.22,208.26,603.8846,199.9815,605.0379,205.5195,599.4999,206.6728,609.22,208.26" style="stroke: #A80036; stroke-width: 1.0;"/>
<path d="M511.39,120.16 C527.93,129.27 544.24,139.28 559,150 C576.42,162.65 593.29,179.99 605.88,194.24 " fill="none" id="C_0000287495916564113342-&gt;C_0000387733199705628658-1" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="609.31,198.17,606.414,188.7565,606.0256,194.4,600.3821,194.0116,609.31,198.17" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="579" y="163.0669">-i</text>
<path d="M183.84,111.01 C154.05,121.64 124.5,134.5 98,150 C77.23,162.14 57.93,181.54 44.55,196.83 " fill="none" id="C_0000287495916564113342&lt;-C_0000121332093434690887" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="196.16,106.75,189.1829,104.9277,184.8173,110.6672,191.7944,112.4895,196.16,106.75" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="99" y="163.0669">-a</text>
<path d="M196.4,109.87 C173.78,120.54 152.27,133.72 134,150 C121.56,161.08 113.43,177.85 108.35,192.19 " fill="none" id="C_0000287495916564113342-&gt;C_0001424864837456200487" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="106.75,196.95,113.4236,189.7069,108.3526,192.2138,105.8457,187.1427,106.75,196.95" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="135" y="163.0669">-b</text>
<path d="M314.7,120.06 C304.75,129.44 295.15,139.55 287,150 C277.1,162.69 268.87,178.62 262.88,192.08 " fill="none" id="C_0000287495916564113342-&gt;C_0001378112127131766972" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="260.78,196.92,268.0444,190.2695,262.7788,192.3369,260.7115,187.0714,260.78,196.92" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="288" y="163.0669">-d</text>
<path d="M418.69,120.08 C433.2,144.51 449.63,172.2 461.51,192.22 " fill="none" id="C_0000287495916564113342-&gt;C_0001135797791892670246" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="464.13,196.62,462.9678,186.84,461.5743,192.3225,456.0918,190.929,464.13,196.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="447" y="163.0669">-g</text>
<path d="M445.7,120.08 C474.59,146.73 507.67,177.26 529.59,197.48 " fill="none" id="C_0000287495916564113342-&gt;C_0001243547836571712317" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="533.28,200.88,529.3755,191.8382,529.6043,197.4904,523.9521,197.7192,533.28,200.88" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="496" y="163.0669">-h</text>
<path d="M533.93,120.04 C555.11,129.31 576.36,139.39 596,150 C624.74,165.53 655.23,187.52 675.1,202.69 " fill="none" id="C_0000287495916564113342-&gt;C_0000747991828672433537" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="679.17,205.82,674.4737,197.1629,675.2063,202.7721,669.5971,203.5048,679.17,205.82" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="624" y="163.0669">-j</text>
<path d="M562.91,120.01 C589.34,129.36 616.06,139.48 641,150 C682.94,167.69 692.42,174.52 732,197 C736.15,199.36 740.51,201.95 744.72,204.52 " fill="none" id="C_0000287495916564113342-&gt;C_0001783571342994833467" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="749.2,207.29,743.6436,199.1582,744.9456,204.6631,739.4407,205.9652,749.2,207.29" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="12" x="680" y="163.0669">-k</text>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="219.5" y="105.2188"/>
<rect fill="none" height="6" style="stroke: #C82930; stroke-width: 1.0;" width="6" x="221.5" y="107.2188"/>
</a>
<a href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/tests/t00017/t00017.cc#L41" target="_top" title="some_int_reference" xlink:actuate="onRequest" xlink:href="https://github.com/bkryza/clang-uml/blob/c45830f35a6b34145559a084352a1083fa792527/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="233.5" y="113.4292">some_int_reference : int &amp;</text>
</a>
<path d="M227.33,124.78 C173.51,145.32 114.85,170.01 63,197 C57.36,199.93 51.44,203.42 46.03,206.78 " fill="none" id="C_0002299967332512906736&lt;-C_0000970656747477527100" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="239.82,120.06,232.7927,118.4422,228.5966,124.3067,235.6239,125.9245,239.82,120.06" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="164" y="163.0669">-a</text>
<path d="M286.66,120.01 C239.94,142.86 185.91,170.26 138,197 C133.93,199.27 129.67,201.79 125.55,204.29 " fill="none" id="C_0002299967332512906736-&gt;C_0011398918699649603899" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="121.15,207,130.9093,205.6752,125.4044,204.3731,126.7064,198.8682,121.15,207" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="226" y="163.0669">-b</text>
<path d="M322.33,120.08 C279.51,149.32 229.87,183.22 200.8,203.07 " fill="none" id="C_0002299967332512906736-&gt;C_0017209363134757947829" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="196.32,206.13,206.0096,204.3659,200.4514,203.3138,201.5036,197.7556,196.32,206.13" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="12" x="277" y="163.0669">-c</text>
<path d="M349.34,120.08 C324.54,145.54 296.31,174.52 276.66,194.69 " fill="none" id="C_0002299967332512906736-&gt;C_0011024897017054135776" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="272.85,198.6,281.9915,194.9348,276.3352,195.0148,276.2552,189.3585,272.85,198.6" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="320" y="163.0669">-d</text>
<path d="M376.35,120.08 C364.57,144.41 351.24,171.96 341.57,191.97 " fill="none" id="C_0002299967332512906736-&gt;C_0012282407486654419914" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="339.31,196.62,346.8402,190.272,341.4945,192.1225,339.6441,186.7768,339.31,196.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="363" y="163.0669">-e</text>
<path d="M403,133.26 C403,155.95 403,179.72 403,196.62 " fill="none" id="C_0002299967332512906736&lt;-C_0014430403722237681072" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#FFFFFF" points="403,120.08,399,126.08,403,132.08,407,126.08,403,120.08" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="9" x="404" y="163.0669">-f</text>
<path d="M429.65,120.08 C441.43,144.41 454.76,171.96 464.43,191.97 " fill="none" id="C_0002299967332512906736-&gt;C_0009086382335141361974" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="466.69,196.62,466.3559,186.7768,464.5055,192.1225,459.1598,190.272,466.69,196.62" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="453" y="163.0669">-g</text>
<path d="M456.66,120.08 C481.46,145.54 509.69,174.52 529.34,194.69 " fill="none" id="C_0002299967332512906736-&gt;C_0009948382692573698543" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="533.15,198.6,529.7448,189.3585,529.6648,195.0148,524.0085,194.9348,533.15,198.6" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="502" y="163.0669">-h</text>
<path d="M482.6,120.08 C526.05,150.15 576.62,185.14 604.91,204.71 " fill="none" id="C_0002299967332512906736-&gt;C_0003101865597645029270" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="609.25,207.72,604.1332,199.3046,605.1411,204.871,599.5748,205.8789,609.25,207.72" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="550" y="163.0669">-i</text>
<path d="M517.59,120.01 C563.14,142.75 615.64,170.06 662,197 C666.34,199.52 670.88,202.35 675.2,205.15 " fill="none" id="C_0002299967332512906736-&gt;C_0005983934629379468301" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="679.43,207.91,674.0946,199.6315,675.2479,205.1695,669.7099,206.3228,679.43,207.91" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="608" y="163.0669">-j</text>
<path d="M559.13,120.02 C614.82,141.62 677.28,168.16 732,197 C736.23,199.23 740.62,201.76 744.84,204.3 " fill="none" id="C_0002299967332512906736-&gt;C_0014268570743958667740" style="stroke: #A80036; stroke-width: 1.0;"/>
<polygon fill="#A80036" points="749.33,207.05,743.7539,198.9317,745.0693,204.4335,739.5675,205.7489,749.33,207.05" style="stroke: #A80036; stroke-width: 1.0;"/>
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="12" x="664" y="163.0669">-k</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

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

After

Width:  |  Height:  |  Size: 31 KiB

File diff suppressed because it is too large Load Diff

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