blob: 3ebdf3b36ae662fb318280a52023c1a71f845edb [file] [log] [blame]
// PR c++/67244
// { dg-do compile { target c++11 } }
class A {
public:
int operator*();
};
template <typename T, typename Predicate>
void searchGen(int, int, T, Predicate p4) {
p4(0);
}
template <typename...> struct B;
template <typename MetaFunction, typename Type, typename... Types>
struct B<MetaFunction, Type, Types...> {
static void exec() { MetaFunction::template exec<Type>; }
};
template <typename MetaFunction, typename... Types> void forEachType() {
B<MetaFunction, Types...>::exec;
}
namespace {
struct C {
template <typename T> void exec() {
A __trans_tmp_1;
const auto target = *__trans_tmp_1;
searchGen(0, 0, 0, [=](T) { [=] { target; }; });
}
};
}
void ____C_A_T_C_H____T_E_S_T____75() { forEachType<C, int>; }