Avoid using `pointer' as a variable or parameter name.
Output a diagnostic message on an originally silent return path.
Mark _NOEXCEPT where appropriate; add a non-member swap function.