// Implicit conversions between compatible reference wrappers // // Copyright 2020 Peter Dimov // // Distributed under the Boost Software License, Version 1.0. // See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt #include #include struct X { }; struct Y: public X { }; void f1( boost::reference_wrapper r, Y * p ) { BOOST_TEST_EQ( r.get_pointer(), p ); } void f2( boost::reference_wrapper r, int * p ) { BOOST_TEST_EQ( r.get_pointer(), p ); } int main() { Y y; f1( boost::ref(y), &y ); int i = 0; f2( boost::ref(i), &i ); return boost::report_errors(); }