robotology/bayes-filters-lib

Avoid (or not) default implementation of method `MeasurementModel::getNoiseCovarianceMatrix`

xEnVrE opened this issue · 1 comments

At the moment, there is a default implementation of the virtual method MeasurementModel::getNoiseCovarianceMatrix() const

std::pair<bool, MatrixXd> MeasurementModel::getNoiseCovarianceMatrix() const
{
return std::make_pair(false, MatrixXd::Zero(1, 1));
}

If a user implements that method, in a inheriting class, without using the keywords const and override, the internal machinery of the library will silently call the default method possibly causing erroneous behaviors. Should we change this to something different, e.g. throwing an exception in the default implementation?

@claudiofantacci

I don't like this as well.
We should just throw an exception here and in similar contexts.