在 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()的工作结构仿函数,我只是在寻找一种更优雅的方式。
最佳答案
不幸的是,您无法通过占位符访问参数成员。占位符表达式用于算术。
如果您需要访问参数的成员,则需要使用用户定义的仿函数。如果您的编译器支持,您还可以使用 lambda 表达式。
关于推力占位符 : how to access member variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11156278/