Nejednoznačné výrazy
Některé výrazy jsou v jejich významu nejednoznačné.Tyto výrazy se nejčastěji vyskytují, je-li hodnota objektu změněna více než jednou ve stejném výrazu.Tyto výrazy se spoléhají na určité pořadí vyhodnocování tam, kde jazyk žádné nedefinuje.Příklad:
int i = 7;
func( i, ++i );
Jazyk C++ nezaručuje pořadí, ve kterém jsou vyhodnocovány argumenty pro volání funkce.Proto by v předcházejícím příkladu mohla func pro své parametry přijímat hodnoty 7 a 8 nebo 8 a 8, podle toho, zda jsou parametry vyhodnoceny zleva doprava nebo zprava doleva.