Я тут читаю умную книжку и автор уверенно заявляет, что #define для лох^W сишников, а плюсовики должны использовать const type var = 0;
А у меня уши растут с Си и поэтому у меня вопрос к тем, у кого сильна теоретическая плюсовая база.
Если с #define всё ясно — препроцессор просто пробежится по тексту, то с константой у меня вопрос. Будет ли выделяться под неё память? В принципе компилятор вполне может выполнить работу препроцессора и заменить встречающуюся константу на её значение. В идеале мы получим и проверку типа и никаких накладных расходов.
Или я что-то упускаю? Или я всё правильно думаю, но компилятор всё равно всё сделает через жопу?
Расскажите.
Перемещено mono из talks