推力占位符:如何访问成员变量

时间:2012-06-22 12:35:14

标签: thrust

在Thrust排序或过滤调用中使用占位符作为仿函数时,如何访问成员变量?例如以下

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

产生错误  "thrust::detail::functional::actor<thrust::detail::functional::argument<0U>>" has no member "fInf"

我如何使用lambda函数编写它?我有一个带有operator()的工作结构函子,我只是在寻找一种更优雅的方式。

1 个答案:

答案 0 :(得分:2)

不幸的是,您无法通过占位符访问参数成员。占位符表达式用于算术。

如果您需要访问参数的成员,则需要使用用户定义的仿函数。如果编译器支持lambda表达式,也可以使用lambda表达式。