When the type of the initializer expression is a class type
the non-explicit conversion functions of
and its base classes are considered.
When initializing a temporary object ([class.mem]
to be bound to the first parameter of a constructor
where the parameter is of type
“reference to cv2 T
and the constructor is
called with a single argument in the context of
direct-initialization of an object of type “cv3 T
conversion functions are also considered.
Those that are not hidden within
and yield a type whose cv-unqualified version is the same type as
or is a derived class thereof
are candidate functions.
A call to a conversion function returning “reference to X
is a glvalue of type X
, and such a conversion function is
therefore considered to yield X
for this process of selecting