[libc++] Remove a bunch of conditionals on _LIBCPP_DEBUG_LEVEL
Instead of providing two different constructors for iterators that support the debug mode, provide a single constructor but leave the container parameter unused when the debug mode is not enabled. This allows simplifying all the call sites to unconditionally pass the container, which removes a bunch of duplication in the container's implementation. Note that this patch does add some complexity to std::span, however that is only because std::span has the ability to use raw pointers as iterators instead of __wrap_iter. In retrospect, I believe it was a mistake to provide that capability, and so it will be removed in a future patch, along with the complexity added by this patch. Differential Revision: https://reviews.llvm.org/D126993
Loading
Please sign in to comment