| /* { dg-do compile } */ |
| /* { dg-options "-O2" } */ |
| struct adaptor_base {}; |
| struct bound_argument { |
| bound_argument(); |
| }; |
| struct adaptor_functorint : public adaptor_base {}; |
| struct adaptsint : public adaptor_base { |
| adaptsint(const int& _A_functor); |
| adaptor_functorint functor_; |
| }; |
| struct adaptor_functor_adaptsint { |
| adaptor_functor_adaptsint(const adaptsint& _A_functor) : functor_(_A_functor) |
| {} |
| adaptsint functor_; |
| bound_argument bound_; |
| }; |
| struct adapts_adaptsint { |
| adapts_adaptsint(const adaptsint& _A_functor) : functor_(_A_functor) |
| {} |
| adaptor_functor_adaptsint functor_; |
| }; |
| int main() { |
| adapts_adaptsint a (adaptsint(1)); |
| } |