blob: 40959effa5e50acea9d58f5075fdaa64777df901 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2" } */
struct adaptor_base {
};
struct bound_argument {
bound_argument();
};
template <class T_functor> struct adaptor_functor : public adaptor_base {
explicit adaptor_functor(const T_functor& _A_functor) : functor_(_A_functor)
{
}
T_functor functor_;
bound_argument bound_;
};
template <class T_functor> struct adapts : public adaptor_base {
explicit adapts(const T_functor& _A_functor) : functor_(_A_functor) {
}
adaptor_functor<T_functor> functor_;
};
int main() {
adapts<adapts<int> > a (adapts<int>(1));
}