занимать как переменная не будет
Дефайн выполняеться до компиляция программы вроде бы.
Не, чем они отличаются я знаю, у меня вопрос зачем const придумали?
#define определяет макрос, которые во всех местах, где используется заменяется препроцессором. в итоге, если у тебя #define определяет какое-то сложное выражение, оно будет растиражировано по всему коду, вместо одного единственного вычисления константы
тогда получается это просто защита от крявых рук
просто это разные сущности, первое - кусок текста, второе константа определенного типа размещающаяся в сегменте данных для чтения
с дефайном нечего делать, ноль значения для компилятора: у задефайненного значения нет типа и поэтому нет семантики никакой -- это ты как бы взял и руками вместо A написал B (#define A B), поэтому диагностика ошибок исчезает тоже
Я на глобальном уровне уже задался вопросом. Но мой предыдущий вопрос ты ответил спасибо
Но для шаблонов это не баг а фича
Нет, в отличие от макроподстановки ты получаешь ровно одну сущность после инстацирования для каждого набора аргументов шаблона
В моём понимании полезен хеш для строк пришедших в рантайме Либо как вариант захешировать пароли на этапе компиляции, но это, скорее антипаттерн
Обсуждают сегодня