Reuse code for plain and shared in ptr cast tests

This commit is contained in:
Karolin Varner
2015-12-17 12:35:14 +01:00
parent f3279d24b4
commit 6d5f554baa

View File

@@ -104,15 +104,9 @@ bool check_const_pointer_cast(const BasePtr &ptr)
const_cast<const base*>(const_cast<base*>(boost::get_pointer(ptr))); const_cast<const base*>(const_cast<base*>(boost::get_pointer(ptr)));
} }
} template <class BasePtr>
void check_all_casts(const BasePtr &ptr)
int main()
{ {
{
// Try casts with shared_ptr
boost::shared_ptr<base> ptr(new derived);
#if !defined( BOOST_NO_RTTI ) #if !defined( BOOST_NO_RTTI )
BOOST_TEST( check_dynamic_pointer_cast( ptr ) ); BOOST_TEST( check_dynamic_pointer_cast( ptr ) );
#endif #endif
@@ -120,17 +114,15 @@ int main()
BOOST_TEST( check_const_pointer_cast( ptr ) ); BOOST_TEST( check_const_pointer_cast( ptr ) );
} }
{
// Try casts with raw pointer
boost::scoped_ptr<base> ptr(new derived);
#if !defined( BOOST_NO_RTTI )
BOOST_TEST( check_dynamic_pointer_cast( ptr.get() ) );
#endif
BOOST_TEST( check_static_pointer_cast( ptr.get() ) );
BOOST_TEST( check_const_pointer_cast( ptr.get() ) );
} }
int main()
{
boost::shared_ptr<base> boost_shared(new derived);
base *plain = boost_shared.get();
check_all_casts(boost_shared);
check_all_casts(plain);
return boost::report_errors(); return boost::report_errors();
} }