I would like to use thrust reduction in my CUDA application. Hence I include the header and call the function:
#include <thrust\reduce.h>
__host__ void reduction(){
unsigned int t = 0;
thrust::reduce(t,t);
}
However I get compile errors (only one type): "name followed by "::" must be a class or namespace". The problem is with a file called xutility (which i haven't touched). All errors are related to the follow class definition:
// 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;
};
I am not really into template programming. What am I doing wrong?