A
Size: a a a
A
AM
A
A
G
DEFER(A)() // Expands to A () because it requires one more scan to fully expandРазве препроцессор сам не сканирует ещё раз выхлоп макроса? Мне всегда казалось, что сканирует. Например, если вызвать макрос в макросе просто так, то в итоге оба макроса раскроются сами собой. Чем эта ситуация в примере так примечательна, что не раскрывается?
v
DEFER(A)() // Expands to A () because it requires one more scan to fully expandРазве препроцессор сам не сканирует ещё раз выхлоп макроса? Мне всегда казалось, что сканирует. Например, если вызвать макрос в макросе просто так, то в итоге оба макроса раскроются сами собой. Чем эта ситуация в примере так примечательна, что не раскрывается?
G
G
AD
DEFER(A)() // Expands to A () because it requires one more scan to fully expandРазве препроцессор сам не сканирует ещё раз выхлоп макроса? Мне всегда казалось, что сканирует. Например, если вызвать макрос в макросе просто так, то в итоге оба макроса раскроются сами собой. Чем эта ситуация в примере так примечательна, что не раскрывается?
G
G
DEFER(A)()
AD
DEFER(A)()
DEFER(A)()
A вместо id в replacement list для DEFER)^A EMPTY()^ ()
^)A ()
A не экспандится, потому что в множество токенов для rescan-а не попадают (), они остаются снаружи.G
DEFER(A)()
A вместо id в replacement list для DEFER)^A EMPTY()^ ()
^)A ()
A не экспандится, потому что в множество токенов для rescan-а не попадают (), они остаются снаружи.OS