
"Steven Watanabe" <watanabesj@gmail.com> wrote in message news:4810B429.4090008@providere-consulting.com... [...]
I noticed that you included a modified form of my list example. It is not equivalent. Because you are not setting front in insert(), the test if(front.get() == 0) will always be true. As a result the list will always have size 1 which defeats the purpose of the test. The original crashes on msvc 9.0.
HEAP[shifted_ptr.exe]: HEAP: Free Heap block 3f6680 modified at 3f66ac after it was freed
This is a nasty bug because everything is processed like it should but crashes and ends differently with various debuggers. On MSVC it crashes on the deletion of the last object of type "owned<node>" but the pointer is perfectly valid. I'll check this out again this weekend. -Phil