我使用此函数将矢量转换为valarray:
template <typename T> valarray<T>* ValArrayTools::vectorToValArray(vector<T>* vector) {
valarray<T>* val = new valarray<T>(vector->size());
for(int i = 0; i < vector->size(); i++)
{
val[i] = vector[i];
}
return val;
}
我尝试使用模板,以便我可以在每种可能的类型中使用此函数。
现在我要转换
vector<short int> buffer;
进入
valarray<short int>* data;
使用
sf->data = ValArrayTools::vectorToValArray<short int>(&buffer);
但是我收到了这个错误:
CMakeFiles\LPC-Vocoder_Tests.dir/objects.a(ShortFileLoader.cpp.obj): In function `ZN15ShortFileLoader17generateShortFileEv':
C:/Users/****/Documents/Uni/SS18/**Projekt/LPC-Vocoder/src/ShortFileLoader.cpp:33: undefined reference to `std::valarray<short>* ValArrayTools::vectorToValArray<short>(std::vector<short, std::allocator<short> >*)'