Fix compilation errors with -std=gnu++17 (PR#11154)

Fixes the following error:

[ 19%] Built target imgui
/<<PKGBUILDDIR>>/src/libslic3r/MeshBoolean.cpp: In instantiation of ‘indexed_triangle_set Slic3r::MeshBoolean::cgal::cgal_to_indexed_triangle_set(const _Mesh&) [with _Mesh = CGAL::Surface_mesh<CGAL::Point_3<CGAL::Epick> >]’:
/<<PKGBUILDDIR>>/src/libslic3r/MeshBoolean.cpp:185:53:   required from here
/<<PKGBUILDDIR>>/src/libslic3r/MeshBoolean.cpp:151:5: error: cannot bind non-const lvalue reference of type ‘CGAL::SM_Vertex_index&’ to an rvalue of type ‘boost::iterators::detail::iterator_facade_base<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Epick> >::Index_iterator<CGAL::SM_Vertex_index>, CGAL::SM_Vertex_index, std::random_access_iterator_tag, CGAL::SM_Vertex_index, long int, false, false>::reference’ {aka ‘CGAL::SM_Vertex_index’}
  151 |     for (auto &vi : vertices) {
      |     ^~~
/<<PKGBUILDDIR>>/src/libslic3r/MeshBoolean.cpp:156:5: error: cannot bind non-const lvalue reference of type ‘CGAL::SM_Face_index&’ to an rvalue of type ‘boost::iterators::detail::iterator_facade_base<CGAL::Surface_mesh<CGAL::Point_3<CGAL::Epick> >::Index_iterator<CGAL::SM_Face_index>, CGAL::SM_Face_index, std::random_access_iterator_tag, CGAL::SM_Face_index, long int, false, false>::reference’ {aka ‘CGAL::SM_Face_index’}
  156 |     for (auto &face : faces) {
      |     ^~~
make[3]: *** [src/libslic3r/CMakeFiles/libslic3r_cgal.dir/build.make:121: src/libslic3r/CMakeFiles/libslic3r_cgal.dir/MeshBoolean.cpp.o] Error 1
This commit is contained in:
Chow Loong Jin 2023-08-22 15:35:56 +08:00 committed by Lukas Matena
parent 85f001fb81
commit 4aa7366faf

View File

@ -152,12 +152,12 @@ indexed_triangle_set cgal_to_indexed_triangle_set(const _Mesh &cgalmesh)
const auto &vertices = cgalmesh.vertices();
int vsize = int(vertices.size());
for (auto &vi : vertices) {
for (const auto &vi : vertices) {
auto &v = cgalmesh.point(vi); // Don't ask...
its.vertices.emplace_back(to_vec3f(v));
}
for (auto &face : faces) {
for (const auto &face : faces) {
auto vtc = cgalmesh.vertices_around_face(cgalmesh.halfedge(face));
int i = 0;