diff --git a/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h b/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h index 5aa184d4d0c..2889f219237 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h +++ b/Arrangement_on_surface_2/include/CGAL/Arrangement_2/Arrangement_zone_2_impl.h @@ -946,7 +946,9 @@ _leftmost_intersection_with_face_boundary(Face_handle face, bool on_boundary) { // Traverse the isolated vertices inside the face (if there exist any), and // check whether an isolated vertex lies on the curve. - for (auto iv_it = face->isolated_vertices_begin(); + // MSVC17 requires an explicit (non-const) type for the iterator. + typename Arrangement_2::Isolated_vertex_iterator iv_it; + for (iv_it = face->isolated_vertices_begin(); iv_it != face->isolated_vertices_end(); ++iv_it) { // If the isolated vertex is not in the x-range of our curve, disregard it. if (! is_in_x_range(m_cv, iv_it->point())) continue;