Under the conditions specified in [dcl.init], as
part of an initialization of an object of non-class type,
a conversion function can be invoked to convert an initializer
expression of class type to the type of the object
being initialized.
Overload resolution is used to select the
conversion function to be invoked.
Assuming that “cvT” is the
type of the object being initialized,
the candidate functions are selected as follows:
The permissible types for non-explicit conversion functions are
those that can be converted to type T
via a standard conversion sequence ([over.ics.scs]).
For direct-initialization,
the permissible types for explicit conversion functions are
those that can be converted to type T
with a (possibly trivial) qualification conversion ([conv.qual]);
otherwise there are none.