That ambiguity results from the elimination of cases, other languages still have them (and I perceive English to have as well, I just treat them all as homonym). You wouldn't say that foo(a,b) has ambiguity, because foo(NULL, &b) and foo(&a, NULL) both exist.