Когда объявление локальной переменной как нестатической c constexpr полезно / необходимо? - PullRequest
4 голосов
/ 09 июля 2020

Несмотря на чтение некоторых сообщений StackOverflow ( this и this ) и страниц cppreference, я не могу понять, как non-stati c constexpr локальная переменная была бы полезна по сравнению с static constexpr one .

Единственное различие, которое я вижу, состоит в том, что каждый вызов будет иметь свой собственный экземпляр, но поскольку это constexpr Я не вижу здесь практического преимущества (поскольку, если я правильно понимаю, это приведет к тому, что каждый экземпляр будет идентичным и неизменяемым, что сделает несколько экземпляров просто избыточными).

Или, чтобы аргументируйте с другой точки зрения: поскольку нестатические c constexpr локальные переменные инициализируются при (каждом) вызове функции, нет никаких преимуществ для простого const локального, несмотря на то, что он может использоваться для оценок во время компиляции. Но когда они необходимы для оценки во время компиляции, нет смысла делать их не статичными c.

Итак, мой вопрос: в чем мой аргумент несовершенный и в каких случаях нестатический c constexpr локальная переменная быть разумной и, возможно, лучшим выбором?

...