boost/libs/core/test/ref_conversion_test.cpp
2021-10-05 21:37:46 +02:00

40 lines
699 B
C++

// 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 <boost/ref.hpp>
#include <boost/core/lightweight_test.hpp>
struct X
{
};
struct Y: public X
{
};
void f1( boost::reference_wrapper<X> r, Y * p )
{
BOOST_TEST_EQ( r.get_pointer(), p );
}
void f2( boost::reference_wrapper<int const> 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();
}