1// PR c++/67244 2// { dg-do compile { target c++11 } } 3 4class A { 5public: 6 int operator*(); 7}; 8template <typename T, typename Predicate> 9void searchGen(int, int, T, Predicate p4) { 10 p4(0); 11} 12template <typename...> struct B; 13template <typename MetaFunction, typename Type, typename... Types> 14struct B<MetaFunction, Type, Types...> { 15 static void exec() { MetaFunction::template exec<Type>; } 16}; 17template <typename MetaFunction, typename... Types> void forEachType() { 18 B<MetaFunction, Types...>::exec; 19} 20namespace { 21struct C { 22 template <typename T> void exec() { 23 A __trans_tmp_1; 24 const auto target = *__trans_tmp_1; 25 searchGen(0, 0, 0, [=](T) { [=] { target; }; }); 26 } 27}; 28} 29void ____C_A_T_C_H____T_E_S_T____75() { forEachType<C, int>; } 30