{AI05-0147-1}
The rules for conditional_expressions
have been designed as much as possible to work similarly to a parenthesized
expression. The intent is that as much as possible, wherever a parenthesized
expression would be allowed, a conditional_expression
would be allowed, and it should work the same way.

Discussion: {AI05-0147-1}
The syntactic category conditional_expression
appears only as a primary that is parenthesized. The above rule allows
it to additionally be used in other contexts where it would be directly
surrounded by parentheses.

The English-language rule
applies in all places that could surround an expression with parentheses,
including pragma arguments, type conversion and qualified expression
operands, and array index expressions.

This English-language
rule could have been implemented instead by adding a nonterminal expression_within_parentheses,
which would consist of expressions
and conditional_expressions.
Then, that could be used in all of the syntax which could consist of
parens directly around an expression.
We did not do that because of the large amount of change required. A
complete grammar is given in AI05-0147-1.

Ramification: If
the type of the conditional_expression
cannot be determined by one of these rules, then Name Resolution has
failed for that expression, even if the dependent_expressions
would resolve individually.