我正在尝试声明一个返回结构(通用)的泛型函数。我似乎只能找到人们使用原始数据类型的例子。在我尝试编译之前,我现在没有抛出任何视觉工作室错误,然后我得到LINK2019:未解析的外部符号。
以下是我的代码:
我的头文件(ShaderUtilities.h)有这个定义:
class ShaderUtilities
{
public:
ShaderUtilities();
~ShaderUtilities();
template <typename T>
static T* LoadShader(char*, ID3D11Device*);
};
我的类(ShaderUtilities.cpp)实现具有以下内容:
#include "ShaderUtilities.h"
ShaderUtilities::ShaderUtilities()
{}
ShaderUtilities::~ShaderUtilities()
{}
template <typename T>
static T* ShaderUtilities::LoadShader(char* shaderFileName, ID3D11Device* device)
{
T* shader;
//blah blah code here
return shader;
}
以上所有编译都没有问题;但是,当我尝试调用它时,我得到上面的编译器错误。这就是我所说的:
ID3D11VertexShader* shader = ShaderUtilities::LoadShader<ID3D11VertexShader>((char*)"ColorVertexShader", m_Device);
有没有人碰巧知道我做错了什么?提前致谢!!欢迎任何建议!