Я реализую DLL на C ++, и в моей библиотеке есть класс, который содержит метод шаблона. Например,
class A : public IA
{
public:
A() { /* constructor stuff */ }
template <typename T> void foo { /* foo does stuff */ }
};
Теперь, поскольку шаблоны разрешаются во время компиляции, если я никогда не вызову foo в моей библиотеке, но он должен быть вызван только в проекте, который использует библиотеку, что происходит? Насколько я понимаю, когда я компилирую DLL, foo не будет сохранен в таблице виртуальных методов любого типа, поэтому вызов в целевом проекте может вызвать неожиданное поведение. Кто-нибудь может подтвердить это и объяснить это более подробно? Спасибо