When does C++ use unique_ptr instead of shared_ptr
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!