Никак не могу разрбраться с шаблонами. В проекте есть 2 модуля (2 DLL-ки). В первом модуле в неком .h файле имею:
#pragma once
#ifdef ENGINE_EXPORTS
#define ENGINE_API __declspec(dllexport)
#else
#define ENGINE_API __declspec(dllimport)
#endif
class ENGINE_API ResourceManager
{
public:
template< class T >
SmartPtr<T> GetResource(const string& name);
};
template SmartPtr<SceneModel> ResourceManager::GetResource(const string& name);
далее из второго модуля вызываю:
ResourceManager* manager = ...
manager->GetResource<SceneModel>("bla-bla");
И при линкове получаю ошибку, что фунция не найдена (error LNK2001: unresolved external symbol). Хотя в первом модуле могу с этой функцией работать нормально. Кто-нибудь может объянить, в чем дело?