обозначенные таким словом, вычисляются на этапе компиляции? Так быстрее? А как обычно выражения вычисляются? Спасибо 🙏
Ну либо у тебя программа будет считать во время работы 2*2, либо просто подставит в нужное место 4
«В нужное место 4» это на этапе компиляции?
У вас большенство вычислений происходит в рантайме(во время выполнение), с помощью constexpr у вас значение будет известно во времени компиляции.
constexpr - достаточно специфический инструмент, возникающий в специфических задачах (если речь про функции). Когда у вас возникнет соответствующая задача, вы скорее всего уже будете достаточно опытны и сами поймёте, что в ней необходимы constexpr вычисления. До тех пор знания о них будут не очень полезны
Я столкнулась с constexpr при изучении static, а именно, что инициализация статических функций внутри класса возможна только с помощью constexpr, может поправите меня, читаю Липпмана, правда на английском, могла неправильно понять
А чем просто static не нравится? Зачем constexpr
Там про определение внутри класса. Ну конкретно тут можно и просто const, но constexpr работает не только с интегральными типами.
Можно вместо constexpr inline использовать. constexpr с 17 стандарта просто по умолчанию inline
А это какая страница
Что должно значить "инициализация статических функций внутри класса" ?
можете пока просто думать об этом как о способе объявить статическую константу для класса внутри определения класса. До С++11 не было constexpr, и внутри класса можно было только объявить целочисленные константы. В С++11 добавили constexpr, но за прошедшее время появились и другие способы, и constexpr стал более мощным
Хорошо, пока что так, дальше буду развиваться и дополнять знания по этому вопросу, спасибо!
Обращение к статической памяти медленнее стэка
Обсуждают сегодня