模板函数在VS 2015中给出错误

时间:2019-02-13 02:38:48

标签: c++ visual-c++

我在VS 2015中有一个C ++项目。我在一个类中创建了一个模板函数。

TressPos.h

class TressPos
{

   //constructor
   //destructor

   template <typename T>
   void GetNewVector(T* t, int scale);
}

TressPos.cpp

template <typename T>
void TressPos::GetNewVector(T* t, int scale)
{
  //Do somethings here..
  //....................
}

现在在另一个班上。

DigitalMaster.cpp

TressPos tp;

void DigitalMaster::NesterLock()
{
   tp.GetNewVector(this, 1200);
   //More todo's here...
   //................
   tp.GetNewVector(.....);
}

现在,当我构建项目时,它给出了链接器错误。

基本上抱怨GetNewVector不能接受指向DigitalMaster的指针作为第一个参数。

所以我要做的是在TressPos类中将模板函数作为内联移动。

TressPos.h

class TressPos
{

   //constructor
   //destructor

   template <typename T>
   inline void TressPos::GetNewVector(T* t, int scale)
   {
      //Do somethings here..
      //....................
    }
}

现在,当我在DigitalMaster类中调用此模板函数时,没有任何链接器错误。

但是出于某种原因,Visual Studio认为TressPos类的GetNewVector中没有调用任何函数。即使编译器和链接器都满意。

即,在可视stuido编辑器中,它在DigitalMaster.cpp文件中的GetNewVector功能下方绘制一条红线。

有什么想法吗?在C ++中使用模板是新手。

0 个答案:

没有答案