You can pass references to shared_ptr objects. You only need to copy them
for long-term storage, which is typically not a performance critical
operation in a scene graph.


On Thu, Aug 1, 2013 at 12:21 AM, Robert Osfield <robert.osfi...@gmail.com>wrote:

> Hi Maik? Klein? how do you like to be addressed?
>
> On 29 April 2013 00:53, Maik Klein <maikkl...@googlemail.com> wrote:
> > I am wondering if it is possible to use the c++11 smartpointer instead
> of osg::ref_ptr? Is there any advantage in using the osg::ref_ptr?
>
> As others have said osg::ref_ptr<> is an intrusive smart pointer like
> boost::intrusive_ptr<>, and osg::observer_ptr<> is kinda equivalent to
> weak_ptr<>.
>
> The OSG doesn't have or use an equivalent to std::shared_ptr<>, and if
> I were to write a new scene graph tomorrow I would not use a
> std::shared_ptr<> for general nodes in the scene graph. shared_ptr<>
> isn't as robust as ref_ptr<> in general usage as you are forced to use
> a single shread_ptr<> group to reference a single object, you can't
> just assign a C pointer to a node and create your own shared_ptr<> to
> it as it breaks the design and you'll end up with dangling pointers.
> This design problem with shared_ptr<> forces you to copy
> shared_ptr<>'s all the time when access data members which just can't
> be efficient and requires end users to always stick to this rule.
>
> It's a shame that intrusive_ptr<> isn't part of the standard.
>
> Robert.
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>



-- 
Paul Martz
Skew Matrix Software LLC
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to