и throw внутри constexpr функции тогда? Не придётся ли мне потом это исключение ещё и в рантайме ловить?
static_assert требует constexpr аргументов (следовательно работает только в компайл-тайме) throw для известных во время компиляции значений работает как static_assert, иначе бросает исключение в рантайме. ловить придётся, если объекты будут создаваться в рантайме (а конструкции для автоматического создания только компайл-таймовых объектов нет, нужно ручками писать constexpr)
Обсуждают сегодня