diff --git a/07-Considering_Performance.md b/07-Considering_Performance.md index 0baaa0f..d2eb343 100644 --- a/07-Considering_Performance.md +++ b/07-Considering_Performance.md @@ -205,6 +205,14 @@ std::shared_ptr(new ModelObject_Impl()); std::make_shared(); // (it's also more readable and concise) ``` +### Prefer `unique_ptr` to `shared_ptr` + +If possible use `unique_ptr` instead of `shared_ptr`. The `unique_ptr` does not need to keep track of its copies because it is not copyable. Because of this it is more efficient than the `shared_ptr`. Equivalent to `shared_ptr` and `make_shared` you should use `make_unique` to create the `unique_ptr`: + +```cpp +std::make_unique(); +``` + ### Get rid of std::endl `std::endl` implies a flush operation. It's equivalent to `"\n" << std::flush`.