Get the App
SLTechnology News&Howtos  ›  Internet Technology  › 

When does C++ use unique_ptr instead of ​ shared_ptr

Shulou Source: shulou.com Published: 2022-06-01 19:24:59 10月21日 Update

This article introduces the knowledge of "when should C++ use unique_ptr instead of shared_ptr". In the operation of practical cases, many people will encounter such a dilemma, so let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!

R.21: unique_ptr instead of shared_ptr should be used when shared ownership is not required

Reason (reason)

Unique_ptr is conceptually simpler, the actions are more predictable (you know when the destructions occur) and faster (no implicit maintenance of usage counts is required).

Example, bad (negative example)

Increase and maintain reference counts unnecessarily.

Void f ()

{

Shared_ptr base = make_shared ()

/ / use base locally, without copying it-- refcount never exceeds 1

} / / destroy base

Example (sample)

The following code is more efficient:

Void f ()

{

Unique_ptr base = make_unique ()

/ / use base locally

} / / destroy baseEnforcement (implementation recommendations)

(simple) issue a warning if a function uses shared_ptr to manage locally allocated objects within it, but never returns the smart pointer or passes it to a function that requires shared_ptr&. Unique_ptr is recommended.

This is the end of the content of "when C++ uses unique_ptr instead of shared_ptr". Thank you for reading. If you want to know more about the industry, you can follow the website, the editor will output more high-quality practical articles for you!

Tags: Time content function action suggestion more knowledge example practical learned next code reason negative dilemma actual object local situation Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno MariaDB NVidia MySQL OPPO Reno vpn