cpp: handle nested macro calls like M(M(1))