Explicitly delete the copy constructor and copy assignment operator The implicitly-declared copy constructor and copy assignment operator of ProductParameterization are not deleted since the corresponding functions of the member vector are defined, though ill-formed if they are instantiated. With dllexport, the compiler must generate all of the member functions of the class, including those are implicitly-declared, so we need explicitly delete the ill-formed ones. Change-Id: Iaa763dfaefdc74a9840f244ba05c6bfd0bd99492
diff --git a/include/ceres/local_parameterization.h b/include/ceres/local_parameterization.h index 338ab54..a695638 100644 --- a/include/ceres/local_parameterization.h +++ b/include/ceres/local_parameterization.h
@@ -280,6 +280,8 @@ // rotation is represented using a quaternion. class CERES_EXPORT ProductParameterization : public LocalParameterization { public: + ProductParameterization(const ProductParameterization&) = delete; + ProductParameterization& operator=(const ProductParameterization&) = delete; // // NOTE: The constructor takes ownership of the input local // parameterizations.