[heap] Singular handle issue with MSVC iterator debug facilities
Hi,
Using VS2017 and Boost 1.64, I'm compiling a program which uses
boost::heap::d_ary_heap.
In debug configuration (with default _ITERATOR_DEBUG_LEVEL),
I'm observing issues at run-time when a handle of item on the heap is
compared against default-constructed instance of handle_type.
BTW, the handle_type compiled in is based on std::list::iterator
as defined in boost::heap::detail::priority_queue_mutable_wrapper.
The issue is that MSVC iterator debug facilities break execution with
File: c:\program files (x86)\microsoft visual
studio\2017\professional\vc\tools\msvc\14.10.25017\include\list
Line: 290
Expression: list iterators incompatible
AFAIU, handle_type{}; seems to yield handle h object wrapping singular iterator.
Below, minimal example to reproduces the problem is included.
While debugging the sample, Visual C++ debugger does not show the iterator
wrapped by the handle as default-constructed with null node pointer.
Instead, it displays garbage: ((???, ???), ???)
// ------------------------------------------------------------------
#include <cstdint>
#include <functional>
#include
participants (1)
-
Mateusz Loskot