Добрый день. Интересуют вычисления на стадии компиляции. Например, хотелось бы инициализировать константную хэш-таблицу или забить большой bytearray на стадии компиляции.
Обычно это загружают из ресурсов. Хоть и на этапе выполнения, но удобно, эффективно.
Как это можно сделать, при помощи шаблонов, или через них не получится?
Все эти шаблоны - извращения и бесполезный вынос мозга, держитесь от них подальше и используйте если уж совсем никак
Ещё, насколько мне известно, глобальные целочисленные константы на самом деле не инициализируются на стадии выполнения, а лишь подставляются в код препроцессором. Это относится только целочисленным типам или ещё к каким-то? Как в итоге можно узнать, когда на самом деле инициализировалась константа?
Препроцессор подставляет только для POD типов. Если же тип константы имеет конструктор - он сработает в run-time. Вообще не нужно особо стремиться именно к "прекомпиляции". Все "нелокальные" переменные инициализируются до main, что вполне удобно.