2

スラストソートまたはフィルター呼び出しでプレースホルダーをファンクターとして使用する場合、どのようにメンバー変数にアクセスしますか?たとえば、次のように

thrust::remove_if(ms.begin(), ms.end(), _1.fInf > global_min)

エラーが発生します "thrust::detail::functional::actor<thrust::detail::functional::argument<0U>>" has no member "fInf"

ラムダ関数を使用してどのように記述しますか?私はoperator()で動作する構造体ファンクターを持っています。もっとエレガントな方法を探しています。

4

1 に答える 1

2

残念ながら、プレースホルダーを介して引数メンバーにアクセスすることはできません。プレースホルダー式は算術用です。

引数のメンバーにアクセスする必要がある場合は、ユーザー定義のファンクターを使用する必要があります。コンパイラがラムダ式をサポートしている場合は、ラムダ式を使用することもできます。

于 2012-06-22T17:14:09.787 に答える