带有类的Visual C ++通用模板

时间:2015-01-06 01:17:14

标签: generics visual-c++

我正在尝试声明一个返回结构(通用)的泛型函数。我似乎只能找到人们使用原始数据类型的例子。在我尝试编译之前,我现在没有抛出任何视觉工作室错误,然后我得到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);

有没有人碰巧知道我做错了什么?提前致谢!!欢迎任何建议!

0 个答案:

没有答案