diff --git a/Constrained_triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h b/Constrained_triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h index c6c06f1e904..a43f3f3120f 100644 --- a/Constrained_triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h +++ b/Constrained_triangulation_3/include/CGAL/Conforming_Delaunay_triangulation_3.h @@ -930,6 +930,7 @@ protected: Compare_vertex_handle comp = {this}; Constraint_hierarchy constraint_hierarchy = {comp}; + static_assert(CGAL::is_nothrow_movable_v); Bbox_3 bbox{}; double segment_vertex_epsilon = 1e-8; std::optional max_bbox_edge_length; diff --git a/Constrained_triangulation_3/test/Constrained_triangulation_3/test_constrained_Delaunay_triangulation_3.cpp b/Constrained_triangulation_3/test/Constrained_triangulation_3/test_constrained_Delaunay_triangulation_3.cpp index 8fa77fdda72..0c41947c04d 100644 --- a/Constrained_triangulation_3/test/Constrained_triangulation_3/test_constrained_Delaunay_triangulation_3.cpp +++ b/Constrained_triangulation_3/test/Constrained_triangulation_3/test_constrained_Delaunay_triangulation_3.cpp @@ -8,6 +8,8 @@ using K = CGAL::Exact_predicates_inexact_constructions_kernel; using CDT = CGAL::Conforming_constrained_Delaunay_triangulation_3; +static_assert(CGAL::is_nothrow_movable_v); + int main(int argc, char* argv[]) { CGAL::Surface_mesh mesh; diff --git a/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h b/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h index 5f159044b65..2ad95d310ad 100644 --- a/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h +++ b/Triangulation_2/include/CGAL/Constrained_triangulation_plus_2.h @@ -73,6 +73,7 @@ public: using Self = Constrained_triangulation_plus_2; using Base = Tr_; using Constraint_hierarchy = Ctp_2_hierarchy_type; + static_assert(CGAL::is_nothrow_movable_v); protected: const auto& hierarchy() const { return static_cast(*this); } auto& hierarchy() { return static_cast(*this); } diff --git a/Triangulation_2/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h b/Triangulation_2/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h index cd41a903ff8..825c4c462ad 100644 --- a/Triangulation_2/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h +++ b/Triangulation_2/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h @@ -526,10 +526,10 @@ private: #endif {} - Compare comp; - Sc_to_c_map sc_to_c_map; - std::queue free_ids; - Constraints_set constraints_set; + Compare comp; + Sc_to_c_map sc_to_c_map; + std::stack> free_ids; + Constraints_set constraints_set; } priv; public: Polyline_constraint_hierarchy_2(const Compare& comp) : priv(comp) {} @@ -650,7 +650,7 @@ private: if(priv.free_ids.empty()) { id = priv.constraints_set.size(); } else { - id = priv.free_ids.front(); + id = priv.free_ids.top(); priv.free_ids.pop(); } Constraint_id cid{new Vertex_list_with_info{this}, id};