Size: a a a

2020 August 16

RM

Roy Mustang in C++ Together 2.0
А ты как себе представляешь в компайлтайм индексировать типы?)
источник

Rn

Roman na in C++ Together 2.0
Roy Mustang
В рантайме генерируются только при добавлении, а при получении они уже там сгенерированы
ну и, ты используешь этот индекс где-либо ещё?
источник

AF

Aidar Fattakhov in C++ Together 2.0
Roy Mustang
Тут всего 3 варианта:
1) Запрашивать у своего модуля, создавая методы на каждый указатель стороннего модуля внутри класса (такое себе, это для 10 модулей надо 10 методов заводить)
2) Через список инициализации внутри самого плагина, через родительский модуль достучаться до App и запросить у него указатель на модуль с помощью this->GetModule()->GetApp()->GetModule<Type>
3) Завести класс - фабрику, которая будет хранить в векторе список указателей и через индексацию типов возвращать. Это избавит нужду хранить указатели на модули внутри плагинов
ты все еще пишешь di
источник

RM

Roy Mustang in C++ Together 2.0
Ты че решил свои классы заранее зарегистрировать
источник

RM

Roy Mustang in C++ Together 2.0
Aidar Fattakhov
ты все еще пишешь di
пля, я уже забыл что такое di, диванный индус?
источник

Rn

Roman na in C++ Together 2.0
Roy Mustang
Ты че решил свои классы заранее зарегистрировать
рефлексия, кодоген все дела
источник

AF

Aidar Fattakhov in C++ Together 2.0
протаскивай контекст внутрь плагинов если им нужны другие модули
источник

AF

Aidar Fattakhov in C++ Together 2.0
и проси через него
источник

Rn

Roman na in C++ Together 2.0
Коля🤔🎭
Эй, тсарь, почему:
char str[4] = "123"
strncpy(str, "321", 3) // fine

char* pstr = "123"
strncpy(str, "321", 3)
// wrong: why?
Это очевидно
источник

RM

Roy Mustang in C++ Together 2.0
Roman na
ну и, ты используешь этот индекс где-либо ещё?
Только два метода в классе Add и Get, Add добавляет указатель в вектор, создавая индекс и помещая указатель по индексу в вектор, а Get получает индекс переданного шаблонного типа и вытаскивает по индексу поинтер
источник

К

Коля🤔🎭 in C++ Together 2.0
Roman na
Это очевидно
Ну вот я недалекий, почему wrong? :)
источник

RM

Roy Mustang in C++ Together 2.0
Aidar Fattakhov
протаскивай контекст внутрь плагинов если им нужны другие модули
Это залупа, которая приводит к хуевой архитектуре, нельзя так делать
источник

RM

Roy Mustang in C++ Together 2.0
Каждый должен свою роль играть
источник

AF

Aidar Fattakhov in C++ Together 2.0
Roy Mustang
Это залупа, которая приводит к хуевой архитектуре, нельзя так делать
роль этой штуки - контекст DI
источник

Rn

Roman na in C++ Together 2.0
Коля🤔🎭
Ну вот я недалекий, почему wrong? :)
ну сходи в школу, пиши примеры попроще - "123"[0] = 0
источник

AF

Aidar Fattakhov in C++ Together 2.0
разумеется лучше явно протаскивать зависимости
источник

AF

Aidar Fattakhov in C++ Together 2.0
но кажется в твоем случае плагины пишутся после основной программы?
источник

RM

Roy Mustang in C++ Together 2.0
Класс модуля, так как он в единственном экземпляре, должен хранить в себе фабрику плагинов и фабрику указателей на другие модули, а плагины имеют унаследованный метод GetModule чтоб получить указатель на модуль в котором этот плагин зареган, вот через this->GetModule()->GetFactory<Type> они и смогут получить указатели на другие модули
источник

К

Коля🤔🎭 in C++ Together 2.0
Roman na
ну сходи в школу, пиши примеры попроще - "123"[0] = 0
Мне не нужно ходить в школу, дошколёнок
источник

К

Коля🤔🎭 in C++ Together 2.0
источник