推力占位符 : how to access member variable

标签 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()的工作结构仿函数,我只是在寻找一种更优雅的方式。

最佳答案

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

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

关于推力占位符 : how to access member variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11156278/

相关文章:

c++ - 使用推力根据索引更改某些元素的值

cuda - 让 CUDA Thrust 使用您选择的 CUDA 流

arrays - CUDA 线程将可变数量的数据附加到公共(public)数组

在 thrust 中调用用户定义的函数

cuda - 将 Thrust 设备迭代器转换为原始指针

c++ - CUDA推力库中的函数是否隐式同步?

c++ - 如何在 GPU(最好是 CUDA)上对两个数据容器执行关系连接?

c - Thrust - 如何使用我的数组/数据 - 模型

c++ - 使用 CUDA Thrust 置换迭代器复制数组的特定元素