我已经声明了以下模板以使代码更短:
template <typename T>
void allocateGPUSpace(T* ptr, int size){
cudaMalloc((void**)&ptr,size * sizeof(T));
}
此外,我使用的模板如下:
float* alphaWiMinusOne;
allocateGPUSpace<float>( alphaWiMinusOne,numUnigrams);
但是,当我编译代码时,VS 2008 会发出警告
warning: variable "alphaWiMinusOne" is used before its value is set
和
uninitialized local variable 'alphaWiMinusOne' used
cuda 不理解 C++ 中的模板吗?天哪,这对英伟达来说是必须做的