Files
clang-uml/docs/test_cases/t00064.md
2024-06-17 22:02:29 +02:00

30 KiB

t00064 - Template type list test case

Config

diagrams:
  t00064_class:
    type: class
    glob:
      - t00064.cc
    include:
      namespaces:
        - clanguml::t00064
    using_namespace: clanguml::t00064
    plantuml:
      before:
        - left to right direction

Source code

File tests/t00064/t00064.cc

#include <cstddef>
#include <tuple>

namespace clanguml {
namespace t00064 {

// Loosely based on
template <typename... Ts> struct type_list { };

template <typename Ret, typename Arg, typename... Ts>
struct type_list<Ret (*)(Arg &&), Ts...> { };

template <typename T, typename... Ts> struct type_list<const T, Ts...> { };

template <typename> struct head;
template <typename Head, typename... Tail>
struct head<type_list<Head, Tail...>> {
    using type = Head;
};

template <typename... Type> using first_t = type_list<Type...>;

template <typename... Type> using second_t = type_list<Type...>;

template <typename, typename> class type_group_pair;
template <typename... First, typename... Second>
class type_group_pair<first_t<First...>, second_t<Second...>> {
    static constexpr size_t size = sizeof...(First) + sizeof...(Second);
};

template <typename T> struct optional_ref { };

template <typename, typename, typename> class type_group_pair_it;
template <typename It, typename... First, typename... Second>
class type_group_pair_it<It, first_t<First...>, second_t<Second...>> {
public:
    using value_type =
        decltype(std::tuple_cat(std::make_tuple(*std::declval<It>()),
            std::declval<First>().get_as_tuple({})...,
            std::declval<Second>().get_as_tuple({})...));

    using ref_t = optional_ref<value_type>;

    ref_t get(unsigned i) { return {}; }

    const value_type *getp(unsigned i) { return nullptr; }

    constexpr unsigned find(value_type const &v) { return 0; }
};

struct A { };
struct B { };
struct C { };

class R {
public:
    type_list<A, bool, int> aboolint;
    type_group_pair<type_list<float, double>, type_list<A, B, C>> abc;
};
}
}

Generated PlantUML diagrams

t00064_class

Generated Mermaid diagrams

t00064_class

Generated JSON models

{
  "diagram_type": "class",
  "elements": [
    {
      "bases": [],
      "display_name": "type_list<Ts...>",
      "id": "16440354852046017112",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_list",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 34,
        "file": "t00064.cc",
        "line": 8,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": true,
          "kind": "template_type",
          "name": "Ts...",
          "template_parameters": []
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_list<Ret(Arg &&),Ts...>",
      "id": "12291224704152846709",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_list",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 8,
        "file": "t00064.cc",
        "line": 11,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "template_type",
          "template_parameters": [
            {
              "is_variadic": false,
              "kind": "template_type",
              "name": "Ret",
              "template_parameters": []
            },
            {
              "is_variadic": false,
              "kind": "template_type",
              "name": "Arg",
              "template_parameters": []
            }
          ]
        },
        {
          "is_variadic": true,
          "kind": "template_type",
          "name": "Ts...",
          "template_parameters": []
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_list<T const,Ts...>",
      "id": "12906349030998809160",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_list",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 46,
        "file": "t00064.cc",
        "line": 13,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "template_type",
          "name": "T",
          "template_parameters": []
        },
        {
          "is_variadic": true,
          "kind": "template_type",
          "name": "Ts...",
          "template_parameters": []
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_list<Head,Tail...>",
      "id": "769608253178985720",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_list",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 8,
        "file": "t00064.cc",
        "line": 17,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "template_type",
          "name": "Head",
          "template_parameters": []
        },
        {
          "is_variadic": true,
          "kind": "template_type",
          "name": "Tail...",
          "template_parameters": []
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "head<type_list<Head,Tail...>>",
      "id": "10741333925591003015",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "head",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 8,
        "file": "t00064.cc",
        "line": 17,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [
            {
              "is_variadic": false,
              "kind": "template_type",
              "name": "Head",
              "template_parameters": []
            },
            {
              "is_variadic": true,
              "kind": "template_type",
              "name": "Tail...",
              "template_parameters": []
            }
          ],
          "type": "type_list"
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_list<Type...>",
      "id": "597240042638226493",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": false,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_list",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 29,
        "file": "t00064.cc",
        "line": 21,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": true,
          "kind": "template_type",
          "name": "Type...",
          "template_parameters": []
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_list<First...>",
      "id": "15021642472081025560",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_list",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 7,
        "file": "t00064.cc",
        "line": 27,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": true,
          "kind": "template_type",
          "name": "First...",
          "template_parameters": []
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_list<Second...>",
      "id": "13900437116703425510",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_list",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 7,
        "file": "t00064.cc",
        "line": 27,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": true,
          "kind": "template_type",
          "name": "Second...",
          "template_parameters": []
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_group_pair<type_list<First...>,type_list<Second...>>",
      "id": "10507370550285669286",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": false,
      "is_template": true,
      "is_union": false,
      "members": [
        {
          "access": "private",
          "is_static": true,
          "name": "size",
          "source_location": {
            "column": 29,
            "file": "t00064.cc",
            "line": 28,
            "translation_unit": "t00064.cc"
          },
          "type": "const size_t"
        }
      ],
      "methods": [],
      "name": "type_group_pair",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 7,
        "file": "t00064.cc",
        "line": 27,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [
            {
              "is_variadic": true,
              "kind": "template_type",
              "name": "First...",
              "template_parameters": []
            }
          ],
          "type": "type_list"
        },
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [
            {
              "is_variadic": true,
              "kind": "template_type",
              "name": "Second...",
              "template_parameters": []
            }
          ],
          "type": "type_list"
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "optional_ref<T>",
      "id": "16882528195637382119",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "optional_ref",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 30,
        "file": "t00064.cc",
        "line": 31,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "template_type",
          "name": "T",
          "template_parameters": []
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "optional_ref<type_group_pair_it<It,type_list<First...>,type_list<Second...>>::value_type>",
      "id": "3812248355494855459",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": false,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "optional_ref",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 30,
        "file": "t00064.cc",
        "line": 31,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [],
          "type": "type_group_pair_it<It,type_list<First...>,type_list<Second...>>::value_type"
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_group_pair_it<It,type_list<First...>,type_list<Second...>>",
      "id": "8195070423933989553",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": false,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [
        {
          "access": "public",
          "display_name": "get",
          "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": "get",
          "parameters": [
            {
              "name": "i",
              "type": "unsigned int"
            }
          ],
          "source_location": {
            "column": 11,
            "file": "t00064.cc",
            "line": 44,
            "translation_unit": "t00064.cc"
          },
          "template_parameters": [],
          "type": "ref_t"
        },
        {
          "access": "public",
          "display_name": "getp",
          "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": "getp",
          "parameters": [
            {
              "name": "i",
              "type": "unsigned int"
            }
          ],
          "source_location": {
            "column": 23,
            "file": "t00064.cc",
            "line": 46,
            "translation_unit": "t00064.cc"
          },
          "template_parameters": [],
          "type": "const value_type *"
        },
        {
          "access": "public",
          "display_name": "find",
          "is_const": false,
          "is_consteval": false,
          "is_constexpr": true,
          "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": "find",
          "parameters": [
            {
              "name": "v",
              "type": "const value_type &"
            }
          ],
          "source_location": {
            "column": 24,
            "file": "t00064.cc",
            "line": 48,
            "translation_unit": "t00064.cc"
          },
          "template_parameters": [],
          "type": "unsigned int"
        }
      ],
      "name": "type_group_pair_it",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 7,
        "file": "t00064.cc",
        "line": 35,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "template_type",
          "name": "It",
          "template_parameters": []
        },
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [
            {
              "is_variadic": true,
              "kind": "template_type",
              "name": "First...",
              "template_parameters": []
            }
          ],
          "type": "type_list"
        },
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [
            {
              "is_variadic": true,
              "kind": "template_type",
              "name": "Second...",
              "template_parameters": []
            }
          ],
          "type": "type_list"
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "A",
      "id": "4690293411849965663",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "A",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 8,
        "file": "t00064.cc",
        "line": 51,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "B",
      "id": "10826450462162929338",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "B",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 8,
        "file": "t00064.cc",
        "line": 52,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "C",
      "id": "4784355132393181800",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "C",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 8,
        "file": "t00064.cc",
        "line": 53,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_list<A,bool,int>",
      "id": "3404411618399518160",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": false,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_list",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 34,
        "file": "t00064.cc",
        "line": 8,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [],
          "type": "A"
        },
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [],
          "type": "bool"
        },
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [],
          "type": "int"
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_list<float,double>",
      "id": "1438807188122153557",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_list",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 37,
        "file": "t00064.cc",
        "line": 25,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [],
          "type": "float"
        },
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [],
          "type": "double"
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_list<A,B,C>",
      "id": "8563043506430978365",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_list",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 37,
        "file": "t00064.cc",
        "line": 25,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [],
          "type": "A"
        },
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [],
          "type": "B"
        },
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [],
          "type": "C"
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_group_pair<type_list<float,double>,type_list<A,B,C>>",
      "id": "14832447519797787306",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": false,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_group_pair",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 37,
        "file": "t00064.cc",
        "line": 25,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [
            {
              "is_variadic": false,
              "kind": "argument",
              "template_parameters": [],
              "type": "float"
            },
            {
              "is_variadic": false,
              "kind": "argument",
              "template_parameters": [],
              "type": "double"
            }
          ],
          "type": "type_list"
        },
        {
          "is_variadic": false,
          "kind": "argument",
          "template_parameters": [
            {
              "is_variadic": false,
              "kind": "argument",
              "template_parameters": [],
              "type": "clanguml::t00064::A"
            },
            {
              "is_variadic": false,
              "kind": "argument",
              "template_parameters": [],
              "type": "clanguml::t00064::B"
            },
            {
              "is_variadic": false,
              "kind": "argument",
              "template_parameters": [],
              "type": "clanguml::t00064::C"
            }
          ],
          "type": "type_list"
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "R",
      "id": "17291404702326361893",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": false,
      "is_template": false,
      "is_union": false,
      "members": [
        {
          "access": "public",
          "is_static": false,
          "name": "aboolint",
          "source_location": {
            "column": 29,
            "file": "t00064.cc",
            "line": 57,
            "translation_unit": "t00064.cc"
          },
          "type": "type_list<A,bool,int>"
        },
        {
          "access": "public",
          "is_static": false,
          "name": "abc",
          "source_location": {
            "column": 67,
            "file": "t00064.cc",
            "line": 58,
            "translation_unit": "t00064.cc"
          },
          "type": "type_group_pair<type_list<float,double>,type_list<A,B,C>>"
        }
      ],
      "methods": [],
      "name": "R",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 7,
        "file": "t00064.cc",
        "line": 55,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_group_pair<typename,typename>",
      "id": "2175926029116580461",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": false,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_group_pair",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 37,
        "file": "t00064.cc",
        "line": 25,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "template_type",
          "name": "typename",
          "template_parameters": []
        },
        {
          "is_variadic": false,
          "kind": "template_type",
          "name": "typename",
          "template_parameters": []
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "type_group_pair_it<typename,typename,typename>",
      "id": "8463251163753255664",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": false,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "type_group_pair_it",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 47,
        "file": "t00064.cc",
        "line": 33,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "template_type",
          "name": "typename",
          "template_parameters": []
        },
        {
          "is_variadic": false,
          "kind": "template_type",
          "name": "typename",
          "template_parameters": []
        },
        {
          "is_variadic": false,
          "kind": "template_type",
          "name": "typename",
          "template_parameters": []
        }
      ],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "head<typename>",
      "id": "10538515839073467198",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": true,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "head",
      "namespace": "clanguml::t00064",
      "source_location": {
        "column": 28,
        "file": "t00064.cc",
        "line": 15,
        "translation_unit": "t00064.cc"
      },
      "template_parameters": [
        {
          "is_variadic": false,
          "kind": "template_type",
          "name": "typename",
          "template_parameters": []
        }
      ],
      "type": "class"
    }
  ],
  "name": "t00064_class",
  "package_type": "namespace",
  "relationships": [
    {
      "access": "public",
      "destination": "16440354852046017112",
      "source": "12291224704152846709",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "16440354852046017112",
      "source": "12906349030998809160",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "16440354852046017112",
      "source": "769608253178985720",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "769608253178985720",
      "source": "10741333925591003015",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "10538515839073467198",
      "source": "10741333925591003015",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "16440354852046017112",
      "source": "597240042638226493",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "16440354852046017112",
      "source": "15021642472081025560",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "16440354852046017112",
      "source": "13900437116703425510",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "15021642472081025560",
      "source": "10507370550285669286",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "13900437116703425510",
      "source": "10507370550285669286",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "2175926029116580461",
      "source": "10507370550285669286",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "16882528195637382119",
      "source": "3812248355494855459",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "15021642472081025560",
      "source": "8195070423933989553",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "13900437116703425510",
      "source": "8195070423933989553",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "3812248355494855459",
      "source": "8195070423933989553",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "16882528195637382119",
      "source": "8195070423933989553",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "8463251163753255664",
      "source": "8195070423933989553",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "4690293411849965663",
      "source": "3404411618399518160",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "16440354852046017112",
      "source": "3404411618399518160",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "16440354852046017112",
      "source": "1438807188122153557",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "4690293411849965663",
      "source": "8563043506430978365",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "10826450462162929338",
      "source": "8563043506430978365",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "4784355132393181800",
      "source": "8563043506430978365",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "16440354852046017112",
      "source": "8563043506430978365",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "1438807188122153557",
      "source": "14832447519797787306",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "8563043506430978365",
      "source": "14832447519797787306",
      "type": "dependency"
    },
    {
      "access": "public",
      "destination": "10507370550285669286",
      "source": "14832447519797787306",
      "type": "instantiation"
    },
    {
      "access": "public",
      "destination": "3404411618399518160",
      "label": "aboolint",
      "source": "17291404702326361893",
      "type": "aggregation"
    },
    {
      "access": "public",
      "destination": "14832447519797787306",
      "label": "abc",
      "source": "17291404702326361893",
      "type": "aggregation"
    }
  ],
  "using_namespace": "clanguml::t00064"
}