If I read that web page correctly, the
only time raw pointers are used is when creating a backup for when a copy
constructor fails. From the reading it would seem that the backup point
is not persisted. When the copy constructor fails, the backup is copied
off the heap into variant's storage. When the copy constructor doesn't
fail, the backup is discarded. This raw pointer would only be needed for
a small moment in one process. It would not need to be shared with another
process. So variant should work fine with interprocess.
I'm making some assumptions here that
that web page contains everything I need to know. Am I assuming too much?
---
Aaron Wright
From:
Gordon Woodhull <gordon@woodhull.com>
To:
boost-users@lists.boost.org
Date:
04/08/2012 11:11 PM
Subject:
Re: [Boost-users]
[Interprocess] Collection of base shared_ptr
Sent by:
boost-users-bounces@lists.boost.org
(on Boost.Variant and dynamic allocation)
On Apr 6, 2012, at 7:45 PM, Aaron_Wright@selinc.com
wrote:
Would raw pointers come into play? Would
it depend on the contents of the structs?
Looks like you need nothrow copy constructors and to specialize
some traits to label them as such.
See "Enabling Optimizations" in
http://www.boost.org/doc/libs/1_49_0/doc/html/variant/design.html#variant.design.never-empty
Cheers,
Gordon
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users