diff --git a/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h b/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h index 6a1708eab24..96b11788d5c 100644 --- a/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h +++ b/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h @@ -33,6 +33,7 @@ namespace CGAL { typedef typename SearchTraits::FT FT; typedef Iso_box_d Query_item; typedef typename internal::Get_dimension_tag::Dimension Dimension; + typedef typename CGAL::cpp11::result_of::type Min_vertex; typedef typename CGAL::cpp11::result_of::type Max_vertex; Manhattan_distance_iso_box_point(const SearchTraits& traits_=SearchTraits()):traits(traits_) {} @@ -46,9 +47,10 @@ namespace CGAL { traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Construct_min_vertex_d construct_min_vertex; typename SearchTraits::Construct_max_vertex_d construct_max_vertex; + Min_vertex minv = construct_min_vertex(q); Max_vertex maxv = construct_max_vertex(q); typename SearchTraits::Cartesian_const_iterator_d qmaxit = construct_it(maxv), - qe = construct_it(maxv,1), qminit = construct_it(construct_min_vertex(q)), + qe = construct_it(maxv,1), qminit = construct_it(minv), pit = construct_it(p); for (; qmaxit != qe; ++pit,++qmaxit,++qminit) { if ((*pit)>(*qmaxit)) distance += @@ -67,9 +69,10 @@ namespace CGAL { traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Construct_min_vertex_d construct_min_vertex; typename SearchTraits::Construct_max_vertex_d construct_max_vertex; + Min_vertex minv = construct_min_vertex(q); Max_vertex maxv = construct_max_vertex(q); typename SearchTraits::Cartesian_const_iterator_d qmaxit = construct_it(maxv), - qe = construct_it(maxv,1), qminit = construct_it(construct_min_vertex(q)); + qe = construct_it(maxv,1), qminit = construct_it(minv); for (unsigned int i = 0; qmaxit != qe; ++ qmaxit, ++qminit, ++i) { if (r.min_coord(i)>(*qmaxit)) distance +=(r.min_coord(i)-(*qmaxit)); @@ -86,9 +89,10 @@ namespace CGAL { traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Construct_min_vertex_d construct_min_vertex; typename SearchTraits::Construct_max_vertex_d construct_max_vertex; + Min_vertex minv = construct_min_vertex(q); Max_vertex maxv = construct_max_vertex(q); typename SearchTraits::Cartesian_const_iterator_d qmaxit = construct_it(maxv), - qe = construct_it(maxv,1), qminit = construct_it(construct_min_vertex(q)); + qe = construct_it(maxv,1), qminit = construct_it(minv); for (unsigned int i = 0; qmaxit != qe; ++ qmaxit, ++qminit, ++i) { if (r.min_coord(i)>(*qmaxit)) { dists[i]=(r.min_coord(i)-(*qmaxit)); @@ -111,9 +115,10 @@ namespace CGAL { traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Construct_min_vertex_d construct_min_vertex; typename SearchTraits::Construct_max_vertex_d construct_max_vertex; + Min_vertex minv = construct_min_vertex(q); Max_vertex maxv = construct_max_vertex(q); typename SearchTraits::Cartesian_const_iterator_d qmaxit = construct_it(maxv), - qe = construct_it(maxv,1), qminit = construct_it(construct_min_vertex(q)); + qe = construct_it(maxv,1), qminit = construct_it(minv); for (unsigned int i = 0; qmaxit != qe; ++ qmaxit, ++qminit, ++i) { if ( r.max_coord(i)-(*qminit) >(*qmaxit)-r.min_coord(i) ) distance += (r.max_coord(i)-(*qminit)); @@ -132,9 +137,10 @@ namespace CGAL { traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Construct_min_vertex_d construct_min_vertex; typename SearchTraits::Construct_max_vertex_d construct_max_vertex; + Min_vertex minv = construct_min_vertex(q); Max_vertex maxv = construct_max_vertex(q); typename SearchTraits::Cartesian_const_iterator_d qmaxit = construct_it(maxv), - qe = construct_it(maxv,1), qminit = construct_it(construct_min_vertex(q)); + qe = construct_it(maxv,1), qminit = construct_it(minv); for (unsigned int i = 0; qmaxit != qe; ++ qmaxit, ++qminit, ++i) { if ( r.max_coord(i)-(*qminit) >(*qmaxit)-r.min_coord(i) ) { dists[i]=(r.max_coord(i)-(*qminit));