【发布时间】:2021-12-03 03:19:04
【问题描述】:
我正在为点云创建一个小的欧几里得聚类节点,利用 PCL 的 KD 树实现。
目前,我的订阅者定义如下所示,
ClusteringNode::ClusteringNode(const rclcpp::NodeOptions &options)
: Node("clustering_node", options),
cloud_subscriber_{create_subscription<PointCloudMsg>(
"input_cloud", 10,
std::bind(&ClusteringNode::callback, this,
std::placeholders::_1))},
KD-tree 方法的定义在回调方法内部,并且运行良好,
现在只是为了进一步改进它,我想在这里使用 lambdas 而不是 std::bind 函数,
这里应该采用什么方法?
【问题讨论】:
-
“作为优化”是什么意思?
std::bind和 lambdas 只是导致相同功能的两种不同语法。 -
我发现一些资源声明不应该使用 bind abseil.io/tips/108
-
虽然我同意任何关于优化的讨论都需要“性能或它没有发生”,@Frank,我认为可以公平地说 lambdas 更容易受到 inling 的影响。
-
@SumeshThakur - 那篇文章中有很多很好的理由,但没有一个与优化有关。如果您的代码按原样运行,并且没有解决任何问题,请不要修复它。该指南是关于新代码的。
标签: c++ ros point-cloud-library ros2