diff --git a/registration/include/pcl/registration/icp.h b/registration/include/pcl/registration/icp.h index e3671c144d0..2c2d31938be 100644 --- a/registration/include/pcl/registration/icp.h +++ b/registration/include/pcl/registration/icp.h @@ -154,6 +154,19 @@ namespace pcl convergence_criteria_.reset(new pcl::registration::DefaultConvergenceCriteria (nr_iterations_, transformation_, *correspondences_)); }; + /** + * \brief Due to `convergence_criteria_` holding references to the class members, + * it is tricky to correctly implement its copy and move operations correctly. This + * can result in subtle bugs and to prevent them, these operations for ICP have + * been disabled. + * + * \todo: remove deleted ctors and assignments operations after resolving the issue + */ + IterativeClosestPoint(const IterativeClosestPoint&) = delete; + IterativeClosestPoint(IterativeClosestPoint&&) = delete; + IterativeClosestPoint& operator=(const IterativeClosestPoint&) = delete; + IterativeClosestPoint& operator=(IterativeClosestPoint&&) = delete; + /** \brief Empty destructor */ ~IterativeClosestPoint () {}