135845150SRichard Smith // RUN: %clang_cc1 -std=c++1z -verify %s 2*60437620SRichard Smith // expected-no-diagnostics 335845150SRichard Smith 435845150SRichard Smith namespace std_example { 535845150SRichard Smith template<typename T, typename U = int> struct S { 635845150SRichard Smith T data; 735845150SRichard Smith }; 835845150SRichard Smith template<typename U> S(U) -> S<typename U::type>; 935845150SRichard Smith 1035845150SRichard Smith struct A { 1135845150SRichard Smith using type = short; 1235845150SRichard Smith operator type(); 1335845150SRichard Smith }; 14*60437620SRichard Smith S x{A()}; 1535845150SRichard Smith } 16