Показать исходный текстИстория страницыСсылки сюдаЭкспорт в PDFНаверх Поделиться через Поделиться через... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit TeamsНедавние измененияОтправить по эл.почтеПечатьПостоянная ссылка × Это старая версия документа! Фильтры Фильтры предоставляют возможность сужать процесс итерирования до сущностей и объектов типа «сущностный», обладающих только заданными комбинациями трейтов и деталей. Фильтрация может быть как включающей (позитивной), так и исключающей (негативной). Включение означает, что сущность (или объект сущностного типа) определённо должен содержать трейты (или детали) из списка. Исключение означает противоположное - сущность должна *не* иметь выбранные элементы. Оба указанных способа могут и должны быть использованы друг с другом. Помните, что Apparatus сильно оптимизирован для всех типов фильров, он не выполняет поэтапный поиск, а использует быстрые процедуры сравнения масок. Грубо говоря, тестирование одного фильтра, состоящего из 100 деталей, будет таким же, как если бы он содержал в себе одну. Организация в C++ Вы создаёте инстанцию FFingerprint-а. Есть несколько разных конструкторов и методов, доступных для этой структуры, и вы можете использовать всё, что будет пригодно в конкретном случае. Например, давайте создадим фильтр одного трейта и одной детали, действительного только для загруженных (Booted) сущностей: #include "Filter.h" ... FFilter MyFilter(EBootFilter::Booted); Filter += UMyDetail::StaticClass(); Filter += FMyTrait::StaticStruct(); Теперь вы можете использовать собранный фильтр, чтобы объединять в цепи ремни и чанки и итерироваться по ним. ru/toolworks/docs/apparatus/filter.1623757606.txt.gz Последнее изменение: 2021/06/15 14:46 — jispar