|
4404 | 4404 | If no constructor applies and the destination type is not an aggregate, or
|
4405 | 4405 | the overload resolution is ambiguous, the initialization is ill-formed.
|
4406 | 4406 | \item
|
4407 |
| -Otherwise (i.e., for the remaining copy-initialization cases), |
4408 |
| -user-defined conversions that can convert from the |
4409 |
| -source type to the destination type or (when a conversion function |
4410 |
| -is used) to a derived class thereof are enumerated as described in~\ref{over.match.copy}, |
4411 |
| -and the best one is chosen through overload resolution\iref{over.match}. |
4412 |
| -If the conversion cannot be done or |
4413 |
| -is ambiguous, the initialization is ill-formed. The function |
4414 |
| -selected is called with the initializer expression as its |
4415 |
| -argument; if the function is a constructor, the call is a prvalue |
4416 |
| -of the cv-unqualified version of the |
4417 |
| -destination type whose result object is initialized by the constructor. |
4418 |
| -The call is used |
4419 |
| -to direct-initialize, according to the rules above, the object |
4420 |
| -that is the destination of the copy-initialization. |
4421 |
| -\item |
4422 | 4407 | Otherwise, if the destination type is
|
4423 | 4408 | a (possibly cv-qualified) aggregate class \tcode{A} and
|
4424 | 4409 | the initializer is a parenthesized \grammarterm{expression-list},
|
|
4460 | 4445 | \end{codeblock}
|
4461 | 4446 | \end{example}
|
4462 | 4447 | \end{note}
|
| 4448 | +\item |
| 4449 | +Otherwise (i.e., for the remaining copy-initialization cases), |
| 4450 | +user-defined conversions that can convert from the |
| 4451 | +source type to the destination type or (when a conversion function |
| 4452 | +is used) to a derived class thereof are enumerated as described in~\ref{over.match.copy}, |
| 4453 | +and the best one is chosen through overload resolution\iref{over.match}. |
| 4454 | +If the conversion cannot be done or |
| 4455 | +is ambiguous, the initialization is ill-formed. The function |
| 4456 | +selected is called with the initializer expression as its |
| 4457 | +argument; if the function is a constructor, the call is a prvalue |
| 4458 | +of the cv-unqualified version of the |
| 4459 | +destination type whose result object is initialized by the constructor. |
| 4460 | +The call is used |
| 4461 | +to direct-initialize, according to the rules above, the object |
| 4462 | +that is the destination of the copy-initialization. |
4463 | 4463 | \end{itemize}
|
4464 | 4464 |
|
4465 | 4465 | \item
|
|
0 commit comments