CUDA アプリケーションで推力低減を使用したいと考えています。したがって、ヘッダーを含めて関数を呼び出します。
#include <thrust\reduce.h>
__host__ void reduction(){
unsigned int t = 0;
thrust::reduce(t,t);
}
ただし、コンパイルエラーが発生します(1つのタイプのみ):「「::」が続く名前はクラスまたは名前空間でなければなりません」。問題は 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;
};
私はテンプレート プログラミングにはあまり興味がありません。私は何を間違っていますか?