| // PR c++/35773 | |
| template< typename T > | |
| class auto_ptr | |
| { | |
| struct auto_ptr_ref { }; | |
| public: | |
| auto_ptr(auto_ptr&); | |
| auto_ptr(auto_ptr_ref); | |
| operator auto_ptr_ref(); | |
| }; | |
| template< typename T > | |
| class reference_wrapper | |
| { | |
| public: | |
| reference_wrapper(T& t); | |
| operator T& () const; | |
| }; | |
| struct X { }; | |
| void f(auto_ptr< X >); | |
| void g(reference_wrapper< auto_ptr< X > > r) | |
| { | |
| f(r); | |
| } |