
On 08/27/13 06:44, Thorsten Ottosen wrote:
On 23-08-2013 17:08, Larry Evans wrote:
AFAICT, this shows the offset_ptr would solve the problem of moving the storage in case the storage needs to be resized.
Am I missing something?
I can't tell. Some interprocess experts might want to way in here?
Anyway, I can live with a container that has unstable pointers/references after push_back. std::vector<T> is like that, so what's exactly the difference here?
The offset_ptr<polymorophic_object> solves the unstable pointer problem caused by moving the storage buffer. That's one problem 1st mentioned by Rob Stewart here: http://article.gmane.org/gmane.comp.lib.boost.devel/243582 and then again by Ben Pope here: http://article.gmane.org/gmane.comp.lib.boost.devel/243633 The code I last posted shows the offset_ptr still points to the *this even after the move, although the raw pointer points to the old location. Also, no virtual methods are needed to preserve this stable pointer feature. Using just offset_ptr seems to do the job. -regards, Larry