Фон:
В настоящее время у меня есть проект игрового движка, структурированный в визуальной студии, так что мой «движок» скомпилирован в dll для использования другим проектом «Игра». Идея в том, что я могу поменять местами разные игровые проекты и по-прежнему использовать один и тот же код DLL движка. В своем коде движка я создаю свою собственную структуру, для которой будет использоваться весь остальной код движка. Это поможет отделить мою реализацию от остального кода и упростить модификацию, если это необходимо.
Поскольку весь мой код фреймворка будет использоваться внутри самой dll, а не в «Игре», я подумал, что смогу реализовать шаблоны. Тем не менее, я по-прежнему получаю сообщение об ошибке «неопределенный символ» каждый раз, когда пытаюсь внедрить шаблоны с помощью платформы Engine.
Проблема:
Есть ли способ обойти ошибки «неопределенный символ» для шаблонов из компоновщика в моей dll без необходимости явно определить каждый тип, который будет использовать мой шаблон (например, class template MyClass<int>
, class template MyClass<float>
и т. д.)? Если нет, есть ли какие-либо предложения о том, как я мог бы реализовать свой движок и различные игровые проекты, чтобы все еще оставалось гибким? Спасибо за любой вклад.
P.S. Я не хочу явно определять все типы, которые может использовать шаблонный класс, поскольку он стал бы довольно большим, если бы я захотел создать, скажем, свой собственный класс векторного шаблона (поскольку мне пришлось бы определять МНОГО разных классов).