Может кто-то, пожалуйста, помогите мне с пониманием Eigen :: NullaryExpr().Eigen :: NullaryExpr вход для оператора
У меня есть функтор с оператором() внутри, как
template<typename Scalar>
struct scalar_op
template<typename Index>
inline const Scalar operator()(Index, Index = 0,bool flag=true) const
{
if(flag)
.....
else
.....
}
}
теперь я с помощью оператора, как
scalar_op<Scalar> _f1;
Matrix<Scalar,Dynamic,-1> samples(int nn)
{
return Matrix<Scalar,Dynamic,-1>::NullaryExpr(nn,1,true,_f1);
}
я получаю сообщение об ошибке, как:
ошибка C2780: 'const Eigen :: CwiseNullaryOp Eigen :: DenseBase :: NullaryExpr (const CustomNullaryOp &)': ожидает 1 аргумент - 4 при условии
без аргумента «флаг BOOL = истина», то есть
inline const Scalar operator()(Index, Index = 0) const
и модификации:
return Matrix<Scalar,Dynamic,-1>::NullaryExpr(nn,1,_f1);
мой код компилируется и работает нормально (в том смысле, что я не могу использовать условный оператор внутри оператора() больше).
Недостаточное понимание NullaryExpr() вызывает эту ошибку. Мой вопрос в том, как передать аргумент «flag» в operator(), чтобы я мог использовать его внутри него.
Было бы очень мило, если бы кто-то объяснил, что моя ошибка.
Заранее спасибо.