swap
Functions Should Call swap
, Not std::swap
There is one important subtlety in this code: Although it doesn’t matter in this particular case, it is essential that swap
functions call swap
and not std::swap
. In the HasPtr
function, the data members have built-in types. There is no type-specific version of swap
for the built-in types. In this case, these calls will invoke the library std::swap
.
However, if a class has a member that has its own type-specific swap
function, calling std::swap
would be a mistake. For example, assume we had another class named Foo
that has a member named h
, which has type HasPtr
. If we did not write a Foo
version ...
Get C++ Primer, Fifth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.