我尝试编写一个函数,该函数需要ColXpr
作为输入的值:
typedef Eigen::Array<float, Eigen::Dynamic, Eigen::Dynamic> Signal2D;
void Threshold(Signal2D::ColXpr& params)
{
params = (params >= 0.0f).template cast<float>();
}
当我尝试调用此函数时,我会执行以下操作:
Signal2D arr;
// fill it with stuff
Threshold(arr.col(0));
然后我得到这个编译器错误:
src/core/Neuron.h:91:14: note: no known conversion for argument 1 from ‘Eigen::DenseBase<Eigen::Array<float, -1, -1> >::ColXpr {aka Eigen::Block<Eigen::Array<float, -1, -1>, -1, 1, true>}’ to ‘Eigen::DenseBase<Eigen::Array<float, -1, -1> >::ColXpr& {aka Eigen::Block<Eigen::Array<float, -1, -1>, -1, 1, true>&}’
make: *** [src/training/Fibonacci.o] Error 1
在不重新发布导致此问题的整个系列代码的情况下,有人可以解释一下它是什么吗means当编译器说no known conversion for argument from Value to Value&
?为什么在这种情况下无法获得引用?请注意,我见过与以下相关的类似问题this
我在这里发布的指针:
错误:使用 boost::serialization 与“operator
这可能是 GCC 4.9.0 的一些特性还是我在这里做错了什么?如果您需要查看一个独立的示例,请告诉我,这需要一段时间才能拼凑在一起,我认为这里可能有足够的信息来指出我的一个明显错误。