Cpp Coding Standards/DESIGN/PremGen
From Apache OpenOffice Wiki
Code that generalizes without a need is unnecessarily complex and harder to maintain. So do not consider generalization, before there is indeed a second occurrence. At the third it is probably a good idea.