[temp.deduct.guide] (original) (raw)
13 Templates [temp]
13.7 Template declarations [temp.decls]
13.7.2 Class templates [temp.class]
13.7.2.3 Deduction guides [temp.deduct.guide]
Deduction guides are not found by name lookup.
Instead, when performing class template argument deduction ([over.match.class.deduct]), all reachable deduction guides declared for the class template are considered.
[Example 1: template<class T, class D = int> struct S { T data;};template<class U>S(U) -> S<typename U::type>;struct A { using type = short;operator type();}; S x{A()}; — _end example_]
A deduction-guideshall inhabit the scope to which the corresponding class template belongs and, for a member class template, have the same access.
Two deduction guide declarations for the same class template shall not have equivalent parameter-declaration-clause_s_if either is reachable from the other.