Ensure that destructor's needed by lldb make it into binary in non-inlined fashion

What does this implement/fix?

When paused at a breakpoint in lldb -- attempting to evaluate an expression that calls a method which returns an Eigen::MatrixXd fails with a missing symbol error.

(lldb) po method_that_returns_an_eigen()
error: Couldn't look up symbols:
  Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1>>::~MatrixBase()

The issue appears to be that since the destructor's are defined by via ~MatrixBase() = default -- that they are always inlined.

I am not certain why lldb needs access to the symbol .. but seems to require it (for me).

This PR adds an explicit empty destructor to the parent of MatrixBase -- this induces the child classes to include the symbol as well even though they are defined with ~MatrixBase() = default

Merge request reports

Loading