[icl] Request to merge PR#54
Hi, In its version 22, libc++ introduced changes to their implementation of non-heterogeneous lookup for associative containers that break some assumptions Boost.ICL relies on: https://github.com/llvm/llvm-project/issues/183189 Turns out lookup for associative containers has been poorly specified since forever. I submitted an issue to the WG21 committee positing that a resolution should be adopted that (among other things) would make Boost.ICL assumptions correct: https://cplusplus.github.io/LWG/issue4572 In the latest meeting in Brno, however, the committee decided against that resolution with the result that, pending an upcoming reformulation of the affected part of the standard, Boost.ICL will be officially relying on undefined behavior. I've written a PR to circumvent this problem: https://github.com/boostorg/icl/pull/54 that relies on heterogeneous lookup (well defined and compatible with the asumptions made by Boost.ICL). I contacted the library maintainer some weeks ago but received no answer, so I'm asking here for this PR to be merged before Boost 1.92, since without it, Boost.ICL is currently broken for libc++ v22. FWIW, some users of Boost.ICL are already applying this fix to their local deployments of Boost: https://github.com/azahar-emu/ext-boost/commit/6a85c3100499e886e11c87a5c2109... Another contributor has posted a different PR with the same goal: https://github.com/boostorg/icl/pull/57 My analisys is that this PR is not as comprehensive as PR#54 (it fails to cover intervals of type right_open_interval and related), plus its performance is probably slightly inferior, so I still recommend that PR#54 be used instead. Thank you, Joaquín M López Muñoz
participants (1)
-
Joaquin M López Muñoz