|
4413 | 4413 | If no constructor applies and the destination type is not an aggregate, or
|
4414 | 4414 | the overload resolution is ambiguous, the initialization is ill-formed.
|
4415 | 4415 | \item
|
4416 |
| -Otherwise (i.e., for the remaining copy-initialization cases), |
4417 |
| -user-defined conversions that can convert from the |
4418 |
| -source type to the destination type or (when a conversion function |
4419 |
| -is used) to a derived class thereof are enumerated as described in~\ref{over.match.copy}, |
4420 |
| -and the best one is chosen through overload resolution\iref{over.match}. |
4421 |
| -If the conversion cannot be done or |
4422 |
| -is ambiguous, the initialization is ill-formed. The function |
4423 |
| -selected is called with the initializer expression as its |
4424 |
| -argument; if the function is a constructor, the call is a prvalue |
4425 |
| -of the cv-unqualified version of the |
4426 |
| -destination type whose result object is initialized by the constructor. |
4427 |
| -The call is used |
4428 |
| -to direct-initialize, according to the rules above, the object |
4429 |
| -that is the destination of the copy-initialization. |
4430 |
| -\item |
4431 | 4416 | Otherwise, if the destination type is
|
4432 | 4417 | a (possibly cv-qualified) aggregate class \tcode{A} and
|
4433 | 4418 | the initializer is a parenthesized \grammarterm{expression-list},
|
|
4469 | 4454 | \end{codeblock}
|
4470 | 4455 | \end{example}
|
4471 | 4456 | \end{note}
|
| 4457 | +\item |
| 4458 | +Otherwise (i.e., for the remaining copy-initialization cases), |
| 4459 | +user-defined conversions that can convert from the |
| 4460 | +source type to the destination type or (when a conversion function |
| 4461 | +is used) to a derived class thereof are enumerated as described in~\ref{over.match.copy}, |
| 4462 | +and the best one is chosen through overload resolution\iref{over.match}. |
| 4463 | +If the conversion cannot be done or |
| 4464 | +is ambiguous, the initialization is ill-formed. The function |
| 4465 | +selected is called with the initializer expression as its |
| 4466 | +argument; if the function is a constructor, the call is a prvalue |
| 4467 | +of the cv-unqualified version of the |
| 4468 | +destination type whose result object is initialized by the constructor. |
| 4469 | +The call is used |
| 4470 | +to direct-initialize, according to the rules above, the object |
| 4471 | +that is the destination of the copy-initialization. |
4472 | 4472 | \end{itemize}
|
4473 | 4473 |
|
4474 | 4474 | \item
|
|
0 commit comments