Template argument deduction is done by comparing the return type of
the
conversion function template
(call it
P)
with the type specified by the conversion-type-id of the
conversion-function-id being looked up
(call it A) as described in [temp.deduct.type].
If P is a reference type, the type referred to by P is used in place
of P for type deduction and for any further references to or transformations of
P in the remainder of this subclause.
If the original A is
a function pointer or pointer-to-member-function type
with a potentially-throwing exception specification ([except.spec]),
the exception specification.