cpp: avoid errenous multiple expansions