Я учил, как контейнеры STL выглядят для EA, я думаю, это можно распространить и на указатели stl:
Передовая инженерия:
Вы можете определить классы коллекций для различных кратностей глобально в настройках языка или для конкретного класса вашего проекта (это определит, как он «содержится» в других классах) таким образом .
Простой пример настройки:
Убедитесь, что вы установили классы контейнеров для target класса ассоциации, а не источника. Установите Multiplicity для Target Role на множественное значение (отличается от 0, 0..1, 1 и пустого поля в соответствии с шаблоном кода). Кроме того, установите Сдерживание Целевая роль ассоциации на Значение , чтобы избежать создания указателя на контейнер.
Другой, более гибкий способ - изменить шаблоны кода в Настройки -> Шаблоны генерации кода . Я считаю, что есть способ переопределить шаблон по умолчанию для стереотипных разъемов, хотя я никогда не пробовал. Вероятно, это единственный способ генерировать указатели 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 к этому тривиально.
Туда и обратно
Я не знаю, сработает ли вышеперечисленное, если вы будете заниматься проектированием в обе стороны. Я полагаю, что асимметричные определения вызовут проблемы.