Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


A quick survey of the LO code shows that this idiom is underutilized.

Agreed! Thanks for bringing this up, I've noticed this as well.

The use of make_shared (and family) to construct shared_ptr (and other)
instances is highly encouraged because of its benefits over using new and
smart-pointer ctor or reset.

Very true, make_shared should result in one heap alloc vs. new + the
shared_ptr constructor which uses at least two.

However, if make_shared is used and we're working with a single block,
if we're also using weak_ptrs, if I'm correct the object will be destroyed
once the last strong ref is deleted, but will not be deallocated until the
last weak ref is deleted. I haven't seen many uses of weak_ptrs in LO, but
if we have code using weak refs that could outlive all of the strong
refs depending on your goals it could be better to stick with new + the
shared_ptr constructor.

Daniel

Attachment: signature.asc
Description: Digital signature


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.