/ / Визначення шаблону? [дублікат] - c ++, шаблони, dll

Визначення шаблону? [дублікат] - c + +, шаблони, dll

Можливі дублікати:
Чому шаблони можуть бути реалізовані лише у файлі заголовка?
Чому реалізація та декларація класу шаблонів повинні знаходитися в одному файлі заголовка?

У мене є два основні питання щодо шаблонів функцій у c ++.

  1. Чи потрібно визначити шаблон у файлі .h?
  2. Я створив dll і експортував цілий c ++клас у цій dll. І цей клас містить шаблон функції. Я називаю цей шаблон всередині іншого модуля, який містить цей dll. Отже, коли цей об’єктний файл, що стосується шаблону, буде створений.

Відповіді:

2 для відповіді № 1
  1. Майже завжди. Тони дуптів цієї частини питання.
  2. Додаток, який завантажує DLL, повинен мативже витягнуто в шаблон (див. №1), тому завантаження під час виконання не має значення. Також зауважте, що C ++ ABI є досить вигадливим, і введення загальнодоступного API C ++ в DLL просить провести всілякі тонкі поломки ABI.