Re: [Boost-users] Beginner's shared_ptr question...
void MyClass::init() { // either spOther = shared_ptr<someOtherClass>(new someOtherClass(this)); or spOther.reset(new someOtherClass(this)); }
Dave. -- Dave Slutzkin Melbourne, Australia daveslutzkin@fastmail.fm
Another beginners question... Are the two ways of doing this, as shown above, exactly the same? i.e. execute the same code and are therefore at the same cost, or is one more efficient than the other? James
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
This message (including any attachments) contains confidential and/or proprietary information intended only for the addressee. Any unauthorized disclosure, copying, distribution or reliance on the contents of this information is strictly prohibited and may constitute a violation of law. If you are not the intended recipient, please notify the sender immediately by responding to this e-mail, and delete the message from your system. If you have any questions about this e-mail please notify the sender immediately.
Hughes, James wrote:
void MyClass::init() { // either spOther = shared_ptr<someOtherClass>(new someOtherClass(this)); or spOther.reset(new someOtherClass(this)); }
Dave. -- Dave Slutzkin Melbourne, Australia daveslutzkin@fastmail.fm
Another beginners question...
Are the two ways of doing this, as shown above, exactly the same? i.e. execute the same code and are therefore at the same cost, or is one more efficient than the other?
Reset should be slightly more efficient. The first one, constructs a new shared_ptr, assigns it to your variable, and then destroys it. The copy and destruction involve tweaking the reference counts (increment, then decrement). That said, the difference in performance will be statistically insignificant, especially after compiler optimizations. Use whichever makes more sense to you.
participants (2)
-
Andrew Holden
-
Hughes, James