[over.match.list] (original) (raw)

12 Overloading [over]

12.2 Overload resolution [over.match]

12.2.2 Candidate functions and argument lists [over.match.funcs]

12.2.2.8 Initialization by list-initialization [over.match.list]

When objects of non-aggregate class type T are list-initialized such that [dcl.init.list] specifies that overload resolution is performed according to the rules in this subclause or when forming a list-initialization sequence according to [over.ics.list], overload resolution selects the constructor in two phases:

In copy-list-initialization, if an explicit constructor is chosen, the initialization is ill-formed.

[Note 1:

This differs from other situations ([over.match.ctor], [over.match.copy]), where only converting constructors are considered for copy-initialization.

This restriction only applies if this initialization is part of the final result of overload resolution.

— _end note_]