我在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 ++中使用模板是新手。