Expressions ambiguës
La signification de certaines expressions est ambiguë. Ces expressions se rencontrent généralement lorsque la valeur d'un objet change plusieurs fois dans la même expression. Elles reposent sur un ordre particulier d'évaluation lorsque le langage n'en définit aucun. Prenons l'exemple suivant :
int i = 7;
func( i, ++i );
Le langage C++ ne garantit pas l'ordre dans lequel les arguments d'un appel de fonction sont évalués. Par conséquent, dans l'exemple précédent, func peut recevoir comme paramètres les valeurs 7 et 8, ou 8 et 8, selon que les paramètres sont évalués de gauche à droite ou de droite à gauche.