UML 中的复杂类型定义

Complex typedef in UML

我想知道如何在 UML 中表示复杂的 typedef:

class Foo {
protected:
   typedef std::pair<uint64_t, Bar> BarPair;
   typedef std::set<BarPair> BarPairSet;

   std::map<uint32_t, BarPairSet> m_indexedBarPairSet
};

Bar 不是 Foo 的一部分。

对于结构,您可以使用 <<dataType>>(参见 UML 2.5 第 165 页)。 (部分)您的代码如下所示:

没有直接的方式来表示您的 typedefs,当然可以有例如 class BarPair 依赖于模板 class pair 但没有支持绑定的标准方法。

如果不是 typedef std::pair BarPair 而是 BarPair : public std::pair {} 我们有

那么如何使用构造型 typedef 扩展 UML 以得到类似的东西:

或使用 typedef-bind 构造实现并使用 typedef 实现 BarPairBarPairSet