
Hi, the reason why the for_each loop works, boost::bind unwraps the auto_ptr with get(), and get() does not trigger a debug break, but the operator -> does, so your other calls trigger a breakpoint (on release build this will be disabled and all test will pass). And the boost bind call of A::foo does not crash, because it does not touches 'this' of the object (the bind call uses the static address of A::foo and not the vtable of A). TJ. Am 12.06.2010, 08:41 Uhr, hast Du in gmane.comp.lib.boost.user geschrieben:
Hi there,
<---Schnitt--->
It isn't. Boost.Bind passes the arguments by reference, so the auto_ptr is never copied.
All auto_ptrs have been copied a couple of lines before. See the std::copy call. After that my debugger tells me that all auto_ptrs are empty which makes sense. Still not clear to me what exactly happens when using bind.
Christian