Когда полезны макросы C ++? [закрыто]
C Сообщество C ++ вполне обоснованно опасается препроцессора. Встроенные функции, константы и шаблоны обычно являются более безопасной и превосходной альтернативой#define
.
Следующий макрос:
#define SUCCEEDED(hr) ((HRESULT)(hr) >= 0)
ни в коем случае не превосходит тип сейфа:
inline bool succeeded(int hr) { return hr >= 0; }
Но у макросов есть свое место, пожалуйста, перечислите их использование для макросов, которые выне может обойтись без препроцессора.
Пожалуйста, поместите каждый вариант использования в отдельный ответ, чтобы за него проголосовали, и, если вы знаете, как получить один из ответов без препроцессора, укажите, как в комментариях этого ответа.