将特征类型与 boost::bind 一起使用是否会自动违反 Eigen 的"only pass by reference"规则?

Does using Eigen types with boost::bind automatically violate Eigen's "only pass by reference" rule?

本文关键字:Eigen only pass 规则 reference by boost 类型 特征 bind 一起      更新时间:2023-10-16

因为 libeigen 做了特殊的工作来调整其所有类型的内存对齐方式,所以它有一个特殊的规则,即在将特征类型作为参数传递时,它们应该始终是按引用传递的。

但是我相信 boost::bind 隐式地按值传递。

我的直觉是,使用 boost::bind 与特征类型(并且不使用 boost:ref(会违反 Eigen 的按引用传递规则,从而导致问题。

谁能证实这一点?

boost::bind将有效地将参数作为值传递。除非你用boost::(c)ref包装它们,否则它只是通过值传递的包装器。