静态模板类方法尚未解决

时间:2016-05-24 23:40:09

标签: c++

当我在静态类函数上使用模板时,我有一个编译错误。

为什么会发生这种情况,我该如何解决?

错误:

  

错误1错误LNK2019:未解析的外部符号" public:static class CStatus const __cdecl CustomWindowComponent :: setHWNDComponent(struct HWND __ *,class WindowComponent *)" (?? $ setHWNDComponent @ VWindowComponent @@@ CustomWindowComponent @@ SA?BVCStatus @@ PAUHWND __ @@ PAVWindowComponent @@@ Z)在函数_wWinMain @ 16 D中引用:\ Demo_Project \ main.obj Demo_Project

以下代码导致编译器错误,下一个示例不会:

// Causes error WHEN the function is used
class CustomWindowComponent : public Component
{
public:

    template <typename T>
    static void setHWNDComponent(HWND hwnd, T* cmp)
    {

    }
    ...

// No error
class CustomWindowComponent : public Component
{
public:

    static void setHWNDComponent(HWND hwnd, Component* cmp)
    {

    }
    ...

// in main compile error occurs here
CustomWindowComponent::setHWNDComponent<WindowComponent>(myHwnd, cmp.get());

*注意:在我的项目中,静态函数在头文件中定义,并在其.cpp文件中实现。为了简洁起见,我在这篇文章中合并了它们。

0 个答案:

没有答案