Я читал это в С++, используя макросы вроде
#define max(a,b) (a > b ? a : b)
может привести к "двойной оценке". Может ли кто-нибудь дать мне пример того, когда происходит двойная оценка и почему это плохо?
PS: Удивительно, но я не мог найти подробного объяснения, когда он искал для него, за исключением примера в Clojure (чего я не могу понять).