|
4406 | 4406 | constructors are considered.
|
4407 | 4407 | The applicable constructors
|
4408 | 4408 | are enumerated\iref{over.match.ctor}, and the best one is chosen
|
4409 |
| -through overload resolution\iref{over.match}. |
4410 |
| -The constructor so selected |
| 4409 | +through overload resolution\iref{over.match}. Then: |
| 4410 | +\begin{itemize} |
| 4411 | +\item |
| 4412 | +If overload resolution is successful, |
| 4413 | +the selected constructor |
4411 | 4414 | is called to initialize the object, with the initializer
|
4412 | 4415 | expression or \grammarterm{expression-list} as its argument(s).
|
4413 |
| -If no constructor applies and the destination type is not an aggregate, or |
4414 |
| -the overload resolution is ambiguous, the initialization is ill-formed. |
4415 | 4416 | \item
|
4416 |
| -Otherwise, if the destination type is |
4417 |
| -a (possibly cv-qualified) aggregate class \tcode{A} and |
| 4417 | +Otherwise, if no constructor is viable, |
| 4418 | +the destination type is |
| 4419 | +a (possibly cv-qualified) aggregate class \tcode{A}, and |
4418 | 4420 | the initializer is a parenthesized \grammarterm{expression-list},
|
4419 | 4421 | the object is initialized as follows.
|
4420 | 4422 | Let $e_1$, $\dotsc$, $e_n$ be the elements of the aggregate\iref{dcl.init.aggr}.
|
|
4454 | 4456 | \end{codeblock}
|
4455 | 4457 | \end{example}
|
4456 | 4458 | \end{note}
|
| 4459 | +\item |
| 4460 | +Otherwise, the initialization is ill-formed. |
| 4461 | +\end{itemize} |
| 4462 | + |
4457 | 4463 | \item
|
4458 | 4464 | Otherwise (i.e., for the remaining copy-initialization cases),
|
4459 | 4465 | user-defined conversions that can convert from the
|
|
0 commit comments