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