За исключением описанного ниже, выражение, используемое в контексте, где требуется постоянное выражение, зависит от значения, если какое-либо подвыражение зависит от значения.
An id-expression зависит от значения, если:
это зависит от типа,
это имя параметра шаблона, не являющегося типом,
он называет статический член данных, который является зависимым членом текущего экземпляра и не инициализируется в a member-declarator,
он называет статическую функцию-член, которая является зависимым членом текущего экземпляра, или
это константа литерального типа и инициализируется выражением, зависящим от значения.
Выражения следующей формы зависят от значения, если unary-expressionили expression зависит от типа, или type-id зависит:
sizeof unary-expression sizeof ( type-id ) typeid ( expression ) typeid ( type-id ) alignof ( type-id ) noexcept ( expression )
[ Note: Для стандартного библиотечного макроса offsetofсм [support.types].. ] — end note
Выражения следующей формы являются значением-зависимой , если либо type-id или simple-type-specifier зависит , или , expression или cast-expression является значением в зависимости от:
simple-type-specifier ( expression-listopt ) static_cast < type-id > ( expression ) const_cast < type-id > ( expression ) reinterpret_cast < type-id > ( expression ) ( type-id ) cast-expression
Выражение формы, в которой имена зависимых членов текущего экземпляра зависят от значения. Выражение вида также является значением-зависимым , если оценивать как успешно , и результат оценки относится к шаблонному объекту , который является объектом с длительностью статической или потоком хранения или функцией - члена. &qualified-idqualified-id &cast-expressioncast-expression core constant expression