在Enterprise Architect中使用C STL

如何在Enterprise Architect中使用部分C STL?
能够将某些类属性指定为std :: string或使用std :: auto_ptr(或甚至std :: tr1 :: shared_ptr)作为类型会很好.

另一个有趣的事情是如何能够将容器类型(如std :: vector和std :: map)集成到EA中.

解决方法

我已经教过如何将STL容器看作EA,我想它也可以扩展到stl指针:

正向工程:

您可以在语言设置中全局定义不同多重性的集合类,或者为项目的特定类定义集合类(这将定义它如何“包含”在其他类中)this way.
简单示例设置:

确保为关联的目标类设置容器类,而不是源.将目标角色的多重性设置为多个(根据代码模板,不同于0,0..1,1和空字段).此外,将关联的目标角色的包含设置为Value,以避免生成指向容器的指针.

另一种更灵活的方法修改设置中的代码模板 – >代码生成模板.我相信有一种方法可以覆盖原型连接器的默认模板,但我从未尝试过.这可能是生成STL指针的唯一方法,因为集合类定义仅供EA用于大于1的多重性.

逆向工程:

转到工具 – >选项 – >源代码工程 – > C并将以下字符串附加到’其他集合类’:

vector<#TYPE#*>;deque<#TYPE#*>;list<#TYPE#*>;stack<#TYPE#*>;queue<#TYPE#*>;priority_queue<#TYPE#*>;set<#TYPE#*>;map<*,#TYPE#*>;multiset<#TYPE#*>;multimap<*,#TYPE#*>;

我从来没有尝试过,但我认为将STL指针添加到此处是微不足道的.

往返工程

如果您进行往返工程,我不知道上述情况是否有效.我认为定义不对称会导致问题.

相关文章

/** C+⬑ * 默认成员函数 原来C++类中,有6个默认成员函数: 构造函数 析构函数 拷贝...
#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运...
C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译...
//异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try...
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问...
目录&lt;future&gt;future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程...