ilmbase and OpenEXR 2.3.0 change Iex::BaseExc to no longer derive from std::string, mentioned in the release notes here: https://github.com/openexr/openexr/releases/tag/v2.3.0
This causes a compilation error on lib/IlmCtlSimd/CtlSimdInst.cpp when it propagates a caught exception, because there is no longer an implicit conversion from Iex::BaseExc to std::string available.
It appears as though the fix were to use e.what() instead of e, which is what the attached patch does.
patch-lib_IlmCtlSimd_CtlSimdInst.cpp.txt