1 // PR c++/69694 2 // This is a reduced version of decltype74.C. 3 // { dg-do compile { target c++11 } } 4 5 template<typename... Ts> using void_t = void; 6 7 extern void *declval_void; 8 9 template<typename, typename> struct Fun { }; 10 11 template<typename Desc> 12 struct Fun<Desc, void_t<decltype (declval_void = Desc::name)>> 13 { 14 void fun(); 15 }; 16 17 struct Tag { static constexpr void* name = 0; }; 18 19 template<typename> void a() 20 { 21 Fun<Tag, void>{}.fun(); 22 } 23 24 void b() { a<int>(); } 25