Consider this function from lily/tie-formatting-problem.cc: void Tie_formatting_problem::score_ties (Ties_configuration *ties) const { if (ties->scored_) return; score_ties_configuration (ties); score_ties_aptitude (ties); ties->scored_ = true; }
What is the benefit to using pointers here? I expect a supporter of Google's style to answer that it's true that there is no benefit here, but there is a benefit somewhere up the call chain. That's here: variant.reset_score (); score_ties (&variant); if (variant.score () < best.score ()) { best = variant; } That is difficult to misunderstand with or without the ampersand. The non-null information that references communicate is more useful than what the ampersand provides here. https://codereview.appspot.com/577440044/