1*3ba6ace3SAkira Hatanaka struct A { 2*3ba6ace3SAkira Hatanaka }; 3*3ba6ace3SAkira Hatanaka 4*3ba6ace3SAkira Hatanaka template <class T> 5*3ba6ace3SAkira Hatanaka struct S{ 6*3ba6ace3SAkira Hatanaka S(const A &); 7*3ba6ace3SAkira Hatanaka }; 8*3ba6ace3SAkira Hatanaka 9*3ba6ace3SAkira Hatanaka S(const A&) -> S<A>; 10*3ba6ace3SAkira Hatanaka 11*3ba6ace3SAkira Hatanaka typedef decltype(S(A())) Type0; 12