Hi, everyone. I have a doubt about this concept. That is, one of the bullets in the definition of potentially constant evaluated, which is:
[expr.const#15.3]> an immediate subexpression of a
braced-init-list
However, there's no such definition in the standard that describes what are immediate subexpressions of a braced-init-list. The definition of immediate subexpressions of an expression E is defined as:
1. the constituent expressions of E's operands
2. any function call that E implicitly invokes,
4. if E is a function call or implicitly invokes a function, the constituent expressions of each default argument ([dcl.fct.default]) used in the call, or 5. if E creates an aggregate object ([dcl.init.aggr]), the constituent expressions of each default member initializer ([class.mem]) used in the initialization.
The key point here is a braced-init-list is not an expression, how to determine what are its immediate subexpressions? I guess Does the intent of that rule mean these constitute expressions of a braced-init-list? If not that, I think it's necessary to word a rule that clarifies what are immediate subexpressions of a braced-init-list.