diff --git a/Eigen/src/SVD/BDCSVD.h b/Eigen/src/SVD/BDCSVD.h index 6bafc9dbe..fb676125c 100644 --- a/Eigen/src/SVD/BDCSVD.h +++ b/Eigen/src/SVD/BDCSVD.h @@ -52,9 +52,8 @@ struct traits > : svd_traits template struct allocate_small_svd { - static void run(JacobiSVD& smallSvd, Index rows, Index cols, unsigned int computationOptions) { - (void)computationOptions; - smallSvd = JacobiSVD(rows, cols); + static void run(JacobiSVD& smallSvd, Index rows, Index cols, unsigned int) { + internal::construct_at(&smallSvd, rows, cols); } }; @@ -64,7 +63,7 @@ EIGEN_DISABLE_DEPRECATED_WARNING template struct allocate_small_svd { static void run(JacobiSVD& smallSvd, Index rows, Index cols, unsigned int computationOptions) { - smallSvd = JacobiSVD(rows, cols, computationOptions); + internal::construct_at(&smallSvd, rows, cols, computationOptions); } }; diff --git a/Eigen/src/SVD/JacobiSVD.h b/Eigen/src/SVD/JacobiSVD.h index 615aad149..84934db8d 100644 --- a/Eigen/src/SVD/JacobiSVD.h +++ b/Eigen/src/SVD/JacobiSVD.h @@ -553,7 +553,8 @@ class JacobiSVD : public SVDBase > { * \deprecated Will be removed in the next major Eigen version. Options should * be specified in the \a Options template parameter. */ - EIGEN_DEPRECATED JacobiSVD(Index rows, Index cols, unsigned int computationOptions) { + // EIGEN_DEPRECATED // this constructor is used to allocate memory in BDCSVD + JacobiSVD(Index rows, Index cols, unsigned int computationOptions) { internal::check_svd_options_assertions(computationOptions, rows, cols); allocate(rows, cols, computationOptions); }