В каком классе задач предпочтительнее использовать constexpr? У меня создалось впечатление, что практически всегда я могу использовать const. Когда требуется задавать значение на этапе компиляции?
Ответ
У методов const подразумевает compile-time проверку на отсутствие модифицации (и таких возможностей, например, возвращение неконстантного указателя) состояния типа, исключая mutable-поля. Само выражение может вычисляться и в run-time.
constexpr же позволяет помечать выражения, которые обязательно вычисляются на этапе компиляции и могут использоваться, скажем, в качестве параметров шаблонов, или в инициализаторах констант.
Комментариев нет:
Отправить комментарий