Шаблонные методы в классе DLL C ++ - PullRequest
0 голосов
/ 27 января 2020

Я реализую DLL на C ++, и в моей библиотеке есть класс, который содержит метод шаблона. Например,

class A : public IA
{
public: 
 A() { /* constructor stuff */ }
 template <typename T> void foo { /* foo does stuff */ }
};

Теперь, поскольку шаблоны разрешаются во время компиляции, если я никогда не вызову foo в моей библиотеке, но он должен быть вызван только в проекте, который использует библиотеку, что происходит? Насколько я понимаю, когда я компилирую DLL, foo не будет сохранен в таблице виртуальных методов любого типа, поэтому вызов в целевом проекте может вызвать неожиданное поведение. Кто-нибудь может подтвердить это и объяснить это более подробно? Спасибо

...