
Hi Lex! shared_ptr<Foo> bla; // Creates an empty shared_ptr object bla = shared_ptr<Foo>(new Foo(fooInstance)); // Creates a temporary shared_ptr object, // which owns the copy of fooInstance, // then assigns this temporary object to bla. // Now both bla and the temporary object own // the fooInstance-copy. ...; // Afterwards the temporary shared_ptr object // is not needed anymore and is deleted. // Now only bla owns the fooInstance-copy. // The exact moment, when the temporary object // is destroyed, depends on your compiler toolset. Regards, T. -----Ursprüngliche Nachricht----- Von: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] Im Auftrag von Lex Fridman Gesendet: Freitag, 25. April 2008 04:25 An: boost-users@lists.boost.org Betreff: Re: [Boost-users] shared_ptr Initial Assignment Hi Richard, That was foolish of me to think that bla will point to fooInstance. Obviously it will point to a copy of Foo instance. Thanks for that note. However, you also mentioned that the two options are different: (1) shared_ptr<Foo> bla(new Foo(fooInstance)); (2) shared_ptr<Foo> bla; bla = shared_ptr<Foo>(new Foo(fooInstance)); You mentioned that the second will create a temporary that will "go away". Can you elaborate on that. It seems to me that it shouldn't go away, as long as bla is within scope. I guess that was my main question originally, whether the second option is a correct way to set bla (when, say, it's a class member). Many thanks! Lex _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users