The following example is likely wrongly discussed in standard text of [over.match.class.deduct]
Such examples are also managed by the major compilers (gcc, mvsc, clang) differently from the standard comments.
p6, Example 2:
template <class T> struct A {
explicit A(const T&, ...) noexcept;
A(T&&, ...);
};
int i;
...
template <class T> A(const T&, const T&) -> A<T&>;
template <class T> explicit A(T&&, T&&) -> A<T>;
...
A a7 = {0, i};
A a8{0,i};