Most vexing parse in SparseSparseProductWithPruning.h under C++20
## Summary `Eigen/src/SparseCore/SparseSparseProductWithPruning.h` contains three variable declarations using parenthesized initialization that trigger the C++ most vexing parse ambiguity under C++20: - Line 90 (ColMajor,ColMajor,ColMajor): `remove_all_t<ResultType> res_(res.rows(), res.cols());` - Line 102 (ColMajor,ColMajor,RowMajor): `SparseTemporaryType res_(res.rows(), res.cols());` - Line 113 (RowMajor,RowMajor,RowMajor): `remove_all_t<ResultType> res_(res.rows(), res.cols());` ## Fix Switch from parenthesized initialization `(...)` to brace initialization `{...}`: ```cpp remove_all_t<ResultType> res_{res.rows(), res.cols()}; SparseTemporaryType res_{res.rows(), res.cols()}; ``` Minimal 3-line change, no behavioral difference — `SparseMatrix` constructors accept the same arguments via braces. ## Reference GitHub PR with the minimal patch: https://github.com/thebandofficial/eigen/pull/1
issue