У меня есть шаблонный класс для входных событий, который включен в ядро приложения.Я хочу передать объект из ядра в другой класс без включения заголовка службы в файл заголовка класса.
Во-первых, возможно ли это вообще?Я знаю, что могу легко сделать это с не шаблонным классом, используя предварительное объявление, но в этом случае я не думаю, что это сработает.
Кроме того, из-за того, как класс работает с идентификацией событий с использованием шаблонов, это не может быть абстрагировано в базовый класс.
Я рассматривал просто передачу пустого указателя и приведение его в .cpp к тому, чем он должен быть, но это снимает с него всякую безопасность.
Снаружи шаблон выглядитнапример:
#include "events.h"
enum class intput_events {
toggle_overlay,
toggle_console,
events_count
};
template <intput_events E, typename Listener>
using event = event_t<intput_events, E, Listener>;
using InputEventListener = event_listener<intput_events,
event<intput_events::toggle_overlay, void(int)>,
event<intput_events::toggle_console, void(int)>>;
Где сигнатуры функций записываются в параметры шаблона с соответствующим перечислением.
Я не уверен, возможно ли то, что я хочу сделать здесь, или если я 'Я безумен из-за того, как он настроен в первую очередь, и попытаться заставить его работать так, как я хочу, не получится.
Может быть, мне просто нужно разобраться с этим и поставитьВключение. Я решил, что сначала спрошу, и я был бы признателен за любую помощь или понимание.