Skip to content

Eigen::eigen_assert_exception missing from includes of src/Core/products/Parallelizer.h and src/Core/CommaInitializer.h

With v3.3.8 released 5Oct2020, I see the following:

external/eigen/Eigen/src/Core/products/Parallelizer.h:162:40: error: no member named 'eigen_assert_exception' in namespace 'Eigen'
  if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception());
                                ~~~~~~~^
external/eigen/Eigen/src/Core/util/Macros.h:1017:34: note: expanded from macro 'EIGEN_THROW_X'
#  define EIGEN_THROW_X(X) throw X
                                 ^
1 error generated.

It appears that this struct is only defined in test/main.h, perhaps it needs to go elsewhere or there was a piece left out of a commit:

~/r/eigen ((3.3.8))> rg eigen_assert_exception
test/main.h
178:    struct eigen_assert_exception
180:      eigen_assert_exception(void) {}
181:      ~eigen_assert_exception() { Eigen::no_more_assert = false; }
213:        EIGEN_THROW_X(Eigen::eigen_assert_exception()); \
233:        } catch (Eigen::eigen_assert_exception) {                                     \
250:          EIGEN_THROW_X(Eigen::eigen_assert_exception()); \
261:        catch (Eigen::eigen_assert_exception&) { VERIFY(true); }  \

Eigen/src/Core/CommaInitializer.h
103:  EIGEN_EXCEPTION_SPEC(Eigen::eigen_assert_exception)

Eigen/src/Core/products/Parallelizer.h
162:  if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception());