Ok, too many class bodies - it was only required for ei_svd_precondition_2x2_block_to_be_real.
diff --git a/Eigen/src/SVD/JacobiSVD.h b/Eigen/src/SVD/JacobiSVD.h
index d6b4561..6a05978 100644
--- a/Eigen/src/SVD/JacobiSVD.h
+++ b/Eigen/src/SVD/JacobiSVD.h
@@ -34,13 +34,13 @@
          bool PossiblyMoreRowsThanCols = (Options & AtLeastAsManyColsAsRows) == 0
                                          && (MatrixType::RowsAtCompileTime==Dynamic
                                              || (MatrixType::RowsAtCompileTime>MatrixType::ColsAtCompileTime))>
-struct ei_svd_precondition_if_more_rows_than_cols {};
+struct ei_svd_precondition_if_more_rows_than_cols;
 
 template<typename MatrixType, unsigned int Options,
          bool PossiblyMoreColsThanRows = (Options & AtLeastAsManyRowsAsCols) == 0
                                          && (MatrixType::ColsAtCompileTime==Dynamic
                                              || (MatrixType::ColsAtCompileTime>MatrixType::RowsAtCompileTime))>
-struct ei_svd_precondition_if_more_cols_than_rows {};
+struct ei_svd_precondition_if_more_cols_than_rows;
 
 /** \ingroup SVD_Module
   * \nonstableyet