Note that the questions raised are good ones even if we would normally use
& parameters for the non-null case.
Today on Andrzej's blog:
by Andrzej Krzemieński
From the article:
Have you ever asked yourself, or participated in a discussion on whether “defensive programming”is a good or a bad thing? The issue is controversial, and recently, while watching talk “Defensive Programming Done Right, Part I” by John Lakos, I realized (I think) why. Term “undefined behavior” means different things to different people...