Я научил EA тому, как выглядят контейнеры STL, думаю, это можно распространить и на указатели stl:
Передовой инжиниринг:
Вы можете определить классы коллекций для разных кратностей глобально в языковых настройках или для определенного класса вашего проекта (это определит, как он «содержится» в других классах) здесь. Простой пример настройки:
Убедитесь, что вы задали классы контейнера для целевого класса ассоциации, а не для исходного. Установите Множественность для Целевой роли на несколько (отличается от 0, 0..1, 1 и пустого поля в соответствии с шаблоном кода). Кроме того, установите Containment для Target Role ассоциации на 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 к этому тривиально.
Обратный инжиниринг
Я не знаю, работает ли вышеизложенное, если вы занимаетесь проектированием туда и обратно. Я предполагаю, что тот факт, что определения асимметричны, вызовет проблемы.
person
Gabor Herman
schedule
06.02.2013