Passing Smart Pointers
In this lesson, we will discuss the rules regarding passing smart pointers.
We'll cover the following...
Passing smart pointers is an important topic that is seldom addressed. This chapter ends with the C++ core guidelines since they have six rules for passing std::shared_ptr
and std::unique_ptr
.
The Six Rules #
The following six rules violate the important DRY (don’t repeat yourself) principle for software development. In the end, we only have six rules, which makes life as a software developer a lot easier. Here are the rules:
- R.32: Take a
unique_ptr<widget>
parameter to express that a function assumes ownership of a widget. - R.33: Take a
unique_ptr<widget>&
parameter to express that a function reseats the widget. - R.34: Take a
shared_ptr<widget>
parameter to express that a function is part owner.