2011-11-02 13 views
2

スラスト実装するが、私は単純に、その操作のためのバイナリ関数を定義することはできません。は、私は構造体の配列のためのmin_elementを使用しようとしているバイナリ述語

私はせずに、暗黙的にその構造を定義したいのですが、

は、それは大丈夫ですか?私はほとんどすべてを試みたが、何も動作していないようだ。

struct pred : public binary_function <bool , float3 , float3> 
{ 
    bool operator() (const float3 a, const float3 b) 
    { 
     return a.x > b.x; 
    } 
} 

代わりに私は、私は右のそれを実装していないよ奇妙なエラーが発生していると私は正確に知っていないタイプのいずれかで過負荷に問題があります。

ありがとうございました。

私はちょうどバイナリ述語の受け入れと作業MIN_ELEMENT関数の例を必要としています。

もう一度おねがいします!

+2

そうしない場合、それはあなたの質問に答えるのは難しい:私の頭の上から、あなたが探しているの比較を行うためのバイナリ述語は、この(買い手はご用心、コンパイラの近くではありませんでし)のようになるはずですどのようなエラーが発生したか教えてください。また、テンプレート引数の順序が間違っています。結果の型は最後にする必要があります。 –

+0

ちょっと私が仕事から戻ってきて右ときヨアヒムは、私は、詳細なエラーリストを掲載しますが、私はあなたが言及したように、主な問題は、結果の型であることを信じて、私はむしろ、結果として最初の引数を使用しようとしてきた時間最後よりこれはすべてのことを混乱させたものかもしれません.iはうまくいけば更新します。 –

答えて

3

あなたは間違った順序でbinary_functionにテンプレート引数を持っているように見えます。戻り値の型は引数の型に従います。

struct pred: public binary_function<float3,float3,bool> 
{ 
    __device__ bool operator()(const float3 &a, const float3 &a) const 
    { 
     return a.x > b.x; 
    } 
} 
+0

あるいは単に '' 'binary_function'''だけを削除することもできます。 '' 'min_element'''はそれを必要としません。 –

+0

やあみんな、私はそれを試してみましたが、代わりに分要素を見出すこと、それが私の配列...解決 –

+0

問題のほとんどをゼロにします。 –

関連する問題