-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Triangulation: filter_iterator #8899
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Finite_full_cell_const_iterator finite_full_cells_begin() const | ||
{ return Finite_full_cell_const_iterator(Finiteness_predicate(*this), full_cells_begin(), full_cells_end()); } | ||
Finite_full_cell_const_iterator finite_full_cells_end() const | ||
{ return Finite_full_cell_const_iterator(Finiteness_predicate(*this), full_cells_end(), full_cells_end()); } | ||
#else | ||
/* |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sloriot When I uncomment the non-const version I get a compilation error. Can you explain why?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed. I don't get why I need to define extra operators. I would have expect that there would be an implicit conversion then.
See boostorg/iterator#92 for the source of the issue. |
@mglisse I only changed the filter for cells and not for vertices, which is enough for the testsuite. What is different for vertices? Is it maybe only not tested? |
It is the copy constructor (or conversion) of filter_iterator that is broken, in a way that mostly matters if you do ++ on a copy and the last element of the sequence does not satisfy the predicate but some earlier elements do (maybe also if you compare a copy to a non-copy, I didn't check). That's quite specific, so it is not surprising that tests don't always detect it. |
Summary of Changes
The testsuite of Triangulation has N's for some platforms. The test platforms have in common to use boost_1_88_0, but with VC++ or clang on Windows I can't reproduce the error with this version of boost.
In this PR I use the filter_iterator adaptor of CGAL, to see if the boost filter_iterator is the problem.
Release Management