diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/overload/autoptr1.C')
-rw-r--r-- | gcc/testsuite/g++.dg/overload/autoptr1.C | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/overload/autoptr1.C b/gcc/testsuite/g++.dg/overload/autoptr1.C new file mode 100644 index 000000000..fc8108350 --- /dev/null +++ b/gcc/testsuite/g++.dg/overload/autoptr1.C @@ -0,0 +1,29 @@ +// 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); +} |