Предпосылка:
Код: Выделить всё
constexpr
Они могут вызывать другие функции и использовать условные выражения, но теоретически они должны демонстрировать функциональную чистоту и, следовательно, результаты должно быть кэшировано (компилятором во время компиляции) в какой-то карте, чтобы компилятору не приходилось постоянно пересчитывать одну и ту же функцию.
Вопросы:
- Правильно ли это предположение?
- Если нет, то есть ли что-то, что я не учел? делает невозможным кэширование результата функции constexpr?
- Означает ли это, что функции constexpr должны рассчитываться каждый раз, когда они используются?
Являются ли значения constexpr в шаблонах кэшируемыми или их также необходимо каждый раз пересчитывать?
Подробнее здесь: https://stackoverflow.com/questions/431 ... -functions