我想在我的 CUDA 应用程序中使用减少推力。因此我包含标题并调用函数:
#include <thrust\reduce.h>
__host__ void reduction(){
unsigned int t = 0;
thrust::reduce(t,t);
}
但是我得到编译错误(只有一种类型):“名称后跟“::”必须是类或命名空间”。问题出在一个名为 xutility 的文件上(我没有接触过)。所有错误都与以下类定义有关:
// TEMPLATE CLASS iterator_traits
template<class _Iter>
struct iterator_traits
{ // get traits from iterator _Iter
typedef typename _Iter::iterator_category iterator_category;
typedef typename _Iter::value_type value_type;
typedef typename _Iter::difference_type difference_type;
typedef difference_type distance_type; // retained
typedef typename _Iter::pointer pointer;
typedef typename _Iter::reference reference;
};
我不是很喜欢模板编程。我究竟做错了什么?