Commit 4acedf1
committed
Surface_mesh: remove obsolete g++4.4 workaround from SM_Halfedge_index
CGAL 6.0 raised the minimum compiler requirement to GCC 11.4 (and
equivalently for Clang/MSVC). The work around that was added to
SM_Halfedge_index to paper over a g++ 4.4 ADL bug for 'std::next'
lookups is therefore no longer needed.
The workaround added five 'typedef void' members
(iterator_category, value_type, difference_type, pointer, reference)
to SM_Halfedge_index so that it superficially looked like a legacy
input-iterator. This tricked g++ 4.4's ADL machinery into skipping
the std::next overload set when an SM_Halfedge_index was an argument,
but it has the unwanted side-effect of satisfying the legacy
iterator_traits check inside pybind11. Specifically,
pybind11::detail::is_move_constructible<SM_Halfedge_index> evaluates
as false because pybind11 inspects value_type and, finding 'void',
concludes the type is not a proper value type and therefore not move-
constructible -- contradicting std::move_constructible<SM_Halfedge_index>
which correctly evaluates as true.
Fix: remove the five typedef void members and the comment explaining
them. No other code in the CGAL codebase depends on these typedefs.
Fixes #93191 parent 058401a commit 4acedf1
1 file changed
+0
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | 165 | | |
175 | 166 | | |
176 | 167 | | |
| |||
0 commit comments