Я всегда спрашивал об этом, но я никогда не получал действительно хорошего ответа; Я думаю, что почти любой программист, прежде чем писать первый "Hello World", столкнулся с фразой типа "макрос никогда не должен использоваться", "макрос злые" и т.д., Мой вопрос: почему? С новым С++ 11 существует реальная альтернатива после стольких лет?
Простая часть - это макросы типа #pragma
, специфичные для платформы и специфичные для компилятора, и большую часть времени у них есть серьезные недостатки, такие как #pragma once
, которые подвержены ошибкам, по крайней мере, в 2 важных ситуациях: одно и то же имя в разных путей и с некоторыми сетевыми настройками и файловыми системами.
Но в целом, как насчет макросов и альтернатив их использованию?