Можливі дублікати:
Чому шаблони можуть бути реалізовані лише у файлі заголовка?
Чому реалізація та декларація класу шаблонів повинні знаходитися в одному файлі заголовка?
У мене є два основні питання щодо шаблонів функцій у c ++.
- Чи потрібно визначити шаблон у файлі .h?
- Я створив dll і експортував цілий c ++клас у цій dll. І цей клас містить шаблон функції. Я називаю цей шаблон всередині іншого модуля, який містить цей dll. Отже, коли цей об’єктний файл, що стосується шаблону, буде створений.
Відповіді:
2 для відповіді № 1- Майже завжди. Тони дуптів цієї частини питання.
- Додаток, який завантажує DLL, повинен мативже витягнуто в шаблон (див. №1), тому завантаження під час виконання не має значення. Також зауважте, що C ++ ABI є досить вигадливим, і введення загальнодоступного API C ++ в DLL просить провести всілякі тонкі поломки ABI.