Avoid including <sstream> with EIGEN_NO_IO

What does this implement/fix?

This allows using the Eigen/Dense header in embedded environments using libc++ built with -DLIBCXX_ENABLE_LOCALIZATION=OFF. Without this change, including Eigen/Dense will result in the following compiler error: error: "<locale.h> is not supported since libc++ has been configured without support for localization

I did not include a test for this change since we would have to mock headers for an entire C++ standard library without iostream support.

Additional information

I used the following test binary to check that I can build against my custom embedded libc++

#define EIGEN_NO_IO
#define EIGEN_NO_MALLOC
#include <eigen3/Eigen/Dense>
#include <eigen3/Eigen/Sparse>
int main() {        
    Eigen::Vector3f f;
    return f.size();
}

Merge request reports

Loading