Вдохновленный этот ответ, [expr.const]
Постоянным выражением является либо выражение константы ядра glvalue, которое относится к сущности, которая является допустимым результатом константного выражения (как определено ниже), или константным выражением основного значения prvalue, значение которого удовлетворяет следующим ограничениям:
если значение является объектом типа класса, каждый нестатический элемент данных ссылочного типа относится к объекту, который является допустимым результатом постоянного выражения,
если значение имеет тип указателя, оно содержит адрес объекта со статической продолжительностью хранения, адрес за концом такого объекта ([expr.add]), адрес функции или значение нулевого указателя и
если это значение является объектом класса или типа массива, каждый подобъект удовлетворяет этим ограничениям для значения.
Сущность является допустимым результатом выражения константы, если она является объектом со статической продолжительностью хранения, которая либо не является временным объектом, либо является временным объектом, значение которого удовлетворяет вышеуказанным ограничениям, или оно является функцией.
Что такое временный объект со статическим временем хранения? Я что-то упускаю или это парадоксально для того, чтобы объект был временным и имел статическую продолжительность хранения?
Определение [basic.stc.static]
Все переменные, которые не имеют динамической продолжительности хранения, не имеют продолжительности хранения потоков и не являются локальными, имеют статическую продолжительность хранения. Хранилище для этих объектов должно длиться в течение всего времени программы
Используется только для переменных.