微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在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指针添加到此处是微不足道的.

往返工程

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

原文地址:https://www.jb51.cc/c/119113.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐