id summary reporter owner description type status milestone component version severity resolution keywords cc 12207 allocate_shared using fast_pool_allocator results in member vector iterator memory corruption on MSVC esas Chris Newbold "Reproducer: {{{ #include #include struct TestStruct { std::vector vec; }; int main() { //std::allocator allocator; // works boost::fast_pool_allocator allocator; auto test = std::allocate_shared(allocator); test->vec.push_back(1); auto iter = test->vec.begin(); auto val = *iter; } }}} When dereferencing iter it will assert ""vector iterator not dereferencable"" on MSVC (using 2015 Community Edition) everytime on 64-bit and sporadically on 32-bit. If you put a break point (or break after the assert) and check {{{ ""iter"" -> ""[Raw View]"" -> ""std::_Vector_const_iterator ..."" -> ""std::_Iterator012 ..."" -> ""std::_Iterator_base12"" -> ""_Myproxy"" -> ""_Mycont"" -> ""_Myproxy"" }}} you can see that the _Myproxy of _Mycont is ""0xcccccccccccccccc"" (uninitialized) when it should point to the _Myproxy of std::_Iterator_base12, forming a loop (which is the case when using std::allocator for the allocation). Note that the times it works when you compile on 32-bit the memory still seems to be corrupted (it's just not set to ""0xcccccccccccccccc"")." Bugs new To Be Determined pool Boost 1.61.0 Showstopper