在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()的工作结构函子,我只是在寻找一种更优雅的方式。
答案 0 :(得分:2)
不幸的是,您无法通过占位符访问参数成员。占位符表达式用于算术。
如果您需要访问参数的成员,则需要使用用户定义的仿函数。如果编译器支持lambda表达式,也可以使用lambda表达式。