Under the conditions specified in [dcl.init.ref], a reference can be bound directly
to the result of applying a conversion
function to an initializer expression.
Overload resolution is used to select the
conversion function to be invoked.
Assuming that “reference to cv1T” is the
type of the reference being initialized,
the candidate functions are selected as follows:
The permissible types for non-explicit conversion functions are
the members of R
where “cv1T” is reference-compatible ([dcl.init.ref])
with “cv2T2”.
For direct-initialization, the permissible types for explicit
conversion functions are the members of R
where T2 can be converted to type T
with a (possibly trivial) qualification conversion ([conv.qual]);
otherwise there are none.