Я тестировал несколько вызовов вложенных макросов, и они работали, как ожидалось (... как я и ожидал!). Например, предположил фиктивный макрос add и следующее выражение:
add(1, add(2, 3))
Во-первых, внутреннее добавление расширяется (2 + 3), а во-вторых, внешнее выполняет свою часть (1 + (2 + 3)). Я видел, что внешний макрос не получает шума от внутреннего вызова - во входном выражении - поэтому внутреннее расширение кажется ему полностью прозрачным. Всегда ли это справедливо (даже с более сложными макросами и типами)? Это безопасно?